我正在尝试设计一个数据库,其中一个实体是User
,其中一个属性是programming_languages
,理论上它应该是一个用户的编程语言列表知道。设计这样一个数据库的最佳方法是什么,因为单元格只能保存一个值?我应该创建一个单独的表,其中每行将保存用户的ID和他/她知道的一种语言吗?或者有更好的方法吗?
答案 0 :(得分:2)
在字段中包含多个值仅在数据是静态且在数据库中不更改时才有用,即,如果您只读取数据库中的字段并在之后处理它。
最好是使用userID和Language创建一个单独的表。两者的结合将是主要关键。这是根据数据库规范化的规则。
UserID Language
User1 a,b,c
User2 x,y
规范化后
UserID Language
User1 a
User1 b
User1 c
User2 x
User2 y