MySQL数据库设计-将这些字段放在用户表中还是创建新表?
我需要能够存储一些关于用户的信息,我想知道最好的方法 社交媒体MySQL数据库设计-将这些字段放在用户表中还是创建新表?,mysql,database,database-design,relational-database,normalization,Mysql,Database,Database Design,Relational Database,Normalization,我需要能够存储一些关于用户的信息,我想知道最好的方法 社交媒体 id - user_id - facebook - twitter_username - display_tweets 一些简短的问题: Facebook字段只是一个“是”或“否”来查看他们是否有,所以我知道是否要显示图标。应该是枚举0还是枚举1?1意味着他们有一个 与display_tweets相同,它应该是枚举0还是枚举1 然后主要的问题是,我应该把这些存储在users表中吗?所以我只需要添加3个字段,facebook、t
id - user_id - facebook - twitter_username - display_tweets
一些简短的问题:
- Facebook字段只是一个“是”或“否”来查看他们是否有,所以我知道是否要显示图标。应该是枚举0还是枚举1?1意味着他们有一个
- 与display_tweets相同,它应该是枚举0还是枚举1李>
谢谢 任何布尔字段都需要
位
类型。您也可以使用bool
或boolean
,但这些都是tinyint(1)
的别名,就像位一样。不要使用enum
,因为当输入无效条目时,它会插入一个空字符串,而不是引发异常。任何布尔字段都需要位类型。您也可以使用bool
或boolean
,但这些都是tinyint(1)
的别名,就像位一样。不要使用enum
,因为当输入无效条目时,它会插入一个空字符串,而不是引发异常。是的,将它们放在用户表中。列很便宜(如果它们经常为null或很小),特别是因为您的users表保证非常小(您不可能有大量的用户)
把东西放在更多的表格中只会增加工作量。我以前创建过超过50列的表(正确标准化-所有50列存储不同的数据项)
如果列不一定与每个用户相关,那么允许空值可能是一个好主意。“神奇值”不是一个好主意(我已经看到”“或-1经常被用作“神奇值”。是的,将它们放在用户表中。列很便宜(如果它们经常为null或很小),特别是因为您的users表保证非常小(您不可能有大量的用户)
把东西放在更多的表格中只会增加工作量。我以前创建过超过50列的表(正确标准化-所有50列存储不同的数据项)
如果列不一定与每个用户相关,那么允许空值可能是一个好主意。“魔法值”并不是一个好主意(我已经看到经常将“”或-1用作“魔法值”)