Mysql SET引用外键

时间:2014-10-04 16:21:26

标签: mysql sql foreign-keys set

所以我知道在Mysql中有一个SET数据类型,可用于在一列中保存零个或多个String元素。

我想做的事情是有一个名为EMPLOYEES的表,它有一个名为Languages的列,该列将包含员工知道的所有语言的集合。但是还会有一个语言表,其中包含系统中所有可能的语言,我需要使用EMPLOYEES语言设置列来引用语言表中语言的ID。

这是否可行或是否有更好的方法来解决这个问题?

谢谢

1 个答案:

答案 0 :(得分:0)

请勿使用set。此数据类型限制为64个元素(请参阅documentation)。世界上有超过64种语言。

相反,创建一个真正的联结表,其中包含EmployeeIdLanguageId的列(以及对EmployeesLanguages表的适当外来引用)这也给出了你能够:

  • 包括语言知识(“阅读”,“会话”,“流利”,“原生”)
  • 包括员工在该级别知识渊博的日期
  • 可能相关的其他信息

此外,set数据类型特定于MySQL,因此如果您决定更改底层数据库,则无论如何都必须创建这样的联结表(或类似的东西)。