Mysql表相互链接

时间:2014-10-11 23:50:09

标签: mysql sql

我将在mysql中创建3个表:

Movies: id-name-country
Tv-Series: id-name-country
Artists: id-name-country

我没有单独在这些表格中输入国家/地区信息,而是计划创建另一个表格:

Countries: id-country

我将使我的前三个表从国家/地区表中获取国家/地区数据。 (因此,如果一个国家的名称拼写错误,则只需在一个地方进行更正即可。其他表格中的数据将自动更新。

  • 我能用"外键"?
  • 这样做
  • 这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

到目前为止,您的方法是正确的,仅限在“电视剧”和“艺术家”中的“国家/地区”您指的是国家/地区ID而非值。是的,你可以使用外键(电视剧中的国家ID和艺术家是链接到国家的外键);

编辑: 旁注:看看你的编辑我觉得有必要指出,如果你打算将电影/电视节目与艺术家联系起来,你需要第4张表来保持你到目前为止的正常化。

EDIT2: 决定是否需要表的常用方法是检查2个表或值的连接类型。

  1. 如果它是1对多(如艺术家到原籍国),你没事。
  2. 如果你有很多人,比如电影与艺术家,其中1位艺术家可以在多部电影中,1部电影可以有多位艺术家,你需要一个链接表。
  3. 如果您有一对一的关系(例如银行系统中的customer_ID和护照详细信息,可以将它们分别存储在客户和Passport表中,但加入它们更有意义,因为银行只保留1张有效护照的详细信息每个客户和1本护照只能由1人使用)您可以合并表格(存在不符合规范化3标准的风险)