2014-10-04 53 views
0

所以我知道在Mysql中有一個SET數據類型,可以用來在單個列中保存零個或多個String元素。Mysql SET引用外鍵

我想要做的事情是有一個名爲EMPLOYEES的表,它有一個名爲Languages的列,該列將包含員工知道的所有語言的集合。但是也會有一個語言表,其中包含系統中所有可能的語言,我需要EMPLOYEES語言集列來引用語言表中的語言ID。

這是甚至可能或有更好的方法來解決這個問題?

感謝

回答

0

不要使用這個set。此數據類型限制爲64個元素(請參閱documentation)。世界上有超過64種語言。

相反,創建一個真正的結合表,與EmployeeIdLanguageId(和適當的外國引用到EmployeesLanguages表)列這也爲您提供了以下功能:

  • 包括知識語言(「讀書」,「對話」,「流暢」,「原生」)
  • 包括年月日時的員工成爲該級別
  • 其他信息,知識淵博,可能是相關

此外,set數據類型特定於MySQL,所以如果您決定更改基礎數據庫,則必須創建此類聯接表(或類似的東西)。

+0

好的,我想我明白你在說什麼;例如創建一個名爲EMPLOYEE_LANGUAGES的表,並將EMPLOYEE ID和語言ID用作複合主鍵,並將其作爲將員工鏈接到他們所知的語言的一種方式。 – Hussain1993 2014-10-04 16:29:01

+0

@ Hussain1993。 。 。究竟。這在技術上被稱爲「聯結」或「關聯」表。它是一個實現多對多關係的表格。 – 2014-10-04 16:40:28