我将在mysql中创建3个表:
Movies: id-name-country
Tv-Series: id-name-country
Artists: id-name-country
我计划创建另一个表,而不是单独将国家/地区信息输入到这些表中:
Countries: id-country
我将使前三个表从国家表中获取国家/地区数据。 (这样,如果某个国家的名称拼写错误,只需在一处进行更正即可轻松完成。其他表中的数据将自动更新。
- 我可以使用“外键”来执行此操作吗?
- 这是正确的方法吗?
最佳答案
到目前为止,您的方法是正确的,仅当电视连续剧和艺术家中的“国家/地区”您指的是国家/地区 ID 而不是值。是的,您可以使用外键(电视剧和艺术家中的国家/地区 ID 是链接到国家/地区的外键);
编辑: 旁注:查看您的编辑,我觉得有必要指出,如果您计划将电影/电视节目与艺术家链接,您需要第四个表来保持到目前为止的标准化。
编辑2: 决定是否需要表的通常方法是检查 2 个表或值具有何种类型的连接。
- 如果是一对多(如艺术家与原籍国),那就没问题。
- 如果您有多对多,例如电影与艺术家,其中 1 位艺术家可以出现在多部电影中,而 1 部电影可以有多个艺术家,则您需要一个链接表。
- 如果您有 1 对 1 的关系(例如银行系统中的 customer_ID 和护照详细信息,它们可以单独存储在客户和护照表中,但加入它们更有意义,因为银行仅保存 1 份有效护照的详细信息每个客户和 1 本护照只能由 1 人使用)您可以合并表格(存在不满足规范化 3 标准的风险)
关于Mysql表之间相互链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26320440/