关于设计数据库

时间:2016-12-16 14:59:00

标签: xml database database-design relational-database

我对数据库设计有疑问。

哪个是比较大的数据库系统更好的设计;

设计1 enter image description here

设计2 enter image description here

在我看来,我很满意第二个,但第一个比我想的第二个更传统。

你有什么想法?

3 个答案:

答案 0 :(得分:3)

都不是。如果两个学生住在宿舍,拥有(分享)相同的电话号码(宿舍电话),或者是居住在家里的兄弟姐妹怎么办?电话号码表应为phonenumber studentId作为复合主键的复合键。这反映了所谓的多对多或关联关系,它们不能轻易用XML表示。

以下架构假设每个学生都可以确定"类型"电话他/她使用那条线。如果手机的类型仅由手机确定,那么您将为没有studentId的电话号码和电话类型添加另一个单独的表格,并使关联表格中的phoneNumber字段成为外来的密钥(FK)到新的电话表

enter image description here

答案 1 :(得分:0)

我选择设计1,但需要修改。但是,电话号码表将使用学生ID作为主键。这样你可以让不止一个学生使用同一部手机,这对我来说是一个完全正常的场景。

答案 2 :(得分:0)

我不会通过将电话号码标准化为某些可能无限的列表来反驳这一点。

您真正需要多少/哪种类型的电话号码?例如,你需要传真号码吗? 也许你需要一个学期时间和一个非学期时间数字吗?

您似乎更有可能需要一个主要号码和备用号码,而这些号码可以存储在学生表本身中。