【发布时间】:2012-05-22 10:57:41
【问题描述】:
我希望你能在这里帮助我 - 我有一个关于设计 SQL 表的问题。我知道如何使用 C# 写入数据库并执行查询,但我从来没有真正需要设计一个。所以我想我会试试我们感兴趣的。
假设我有一个名为family_surname 的表。在该表中,可能有 x 个family_members,例如从 2 人到 22 人不等。如何引用family_members 与family_surname?
所以我会 姓氏 史密斯, 琼斯, 棕色的, 泰勒, 等等
然后史密斯可能有 5 个成员,我想记录年龄、身高、体重等等。琼斯可能有 8 名成员 - 它可能因家庭而异。
我真的不想为每个成员列出 8 次“姓氏”——理想情况下,姓氏行会引用(或以某种方式指向)另一个表中的相应行。这就是我遇到麻烦的地方!
我希望我说得通;就像我说的,我只是感兴趣,但我想知道如何用两张表来做到这一点。
无论如何,谢谢你的帮助,我很感激。
编辑 感谢所有评论的人——当然这里有一些有用的信息,我很感激。我正在阅读和研究一些 SQL 代码,到目前为止它还不错。 再次感谢各位!
【问题讨论】:
-
您可能应该阅读数据库规范化:en.wikipedia.org/wiki/Database_normalization
-
如果您的一位家庭成员想改姓怎么办?好像是因为离婚?如果一个实体专门拥有一个属性,我不会对其进行规范化并放入单独的表中。
-
@val 这是一个有效的观点,但它可能超出了问题的范围; OP 只是询问如何在不重复姓氏的情况下表示给定名称/姓氏对的列表。这是否合适取决于应用程序。
-
@gcbenison - 是的,可能只是一个坏例子。 [链接]开始阅读规范化。
标签: c# sql database-design