【发布时间】:2017-12-07 12:23:34
【问题描述】:
我正在使用 MySQL 中的数据库来显示多值属性。我正在尝试找到一种方法来创建父表和子表。我正在使用的想法是拥有一个员工表和一个爱好表。爱好表中的爱好将被视为多值属性,因为员工可以拥有多个爱好。我的问题是,在创建这些表时,我应该使用 3NF 并添加一个 3 表来显示两者之间的关系,还是有办法用两个表来实现这个想法。我对多值属性不是很熟悉,所以我需要帮助来创建表,以了解每个表将使用什么样的键,以及最终形式。我相信我需要将其设为 3NF 形式并将爱好作为多值属性,但将爱好表中的爱好 id 作为主键,将员工 id 作为另一个主键,然后使关系表同时包含员工 id 和爱好 id 作为引用其他两个表的外键。任何有关显示多值属性的帮助或建议将不胜感激!
【问题讨论】:
-
听起来你必须正确答案,即
employee,hobby, &employee_hobbytable。你被什么困住了? -
主要是创建表时的键,以确保我已经正确实现了所有内容。
-
员工表,爱好表,两者都以
id列作为主键。一个多对多关联员工和爱好的表,有两列,employee_id和hobby_id。这两列一起应该是相关表的复合主键。 -
这是一个常见问题解答,您从谷歌搜索中学到了什么? “多值属性”是什么意思?关系/SQL 表每行/元组每列/属性有一个值。很多是不可能的。那你想说什么?非关系设计可能有这样的东西,但是你必须解释你的意思这样的设计。您是否想说关于在功能上不依赖于某些关系/表中的某些列集的列/属性?您是在谈论 MVD 吗?解释你的意思,而不是随便使用一个模糊的词。
-
SQL: multi valued attributes 的可能副本(以及许多其他)
标签: mysql data-structures database-design multivalue