我是一个菜鸟,并试图找出最佳的数据库设计:
存储用户语言首选项(en / fr / es / etc)
我有一个用户表,存储数据如:电子邮件,登录日期等
我想知道我是否应该:
一个。将用户语言存储在同一个表中,作为字符串格式为“en”的新列lang
B中。创建一个语言表并插入其中:
1 - en
2 - fr
3 - es
然后在我的主用户表中以Int格式“1”的新列格式引用该表
我想这是一个基本问题,但这有助于我理解数据库设计的最佳实践,并在我的学习中有一个良好的开端。
提前感谢您的所有建议和回复。
答案 0 :(得分:1)
我会使用一个单独的表,因为您可能希望存储有关该语言的更多数据,然后只存储语言代码。例如,完整的语言名称(用于语言选择框),ISO国家/地区代码,可能是标志图像的路径,或者是用于获取相关用户界面字符串的翻译系统的索引。
答案 1 :(得分:0)
两者都有优点和缺点。以下是我个人的意见。
如果您有一个单独的语言字段表,则可以将其用作查找表,以便在需要时查询可能允许的值。它允许您添加新值,而无需修改数据库模式验证规则。
但是,如果一个表只有一个或两个字段,那么编写查询会因为额外的连接而变得更加复杂,这取决于您拥有多少个其他表。
如果您有更多关于该语言的字段,例如语言国家,语言设置等,那么使用另一个表是有意义的。
由于您似乎只有一个额外的字段,我觉得最好在现有表中包含该字段。