Ref*_*din 3 sql database sql-server database-design sql-server-2008
我正在为我的妻子建立一个联系人经理计划,作为学习Silverlight 4的有趣练习.它将跟踪人们的地址,电话号码,电子邮件,特殊场合(生日,周年纪念日等)
在设计数据库的过程中,我遇到了一个小路障.她想能集团联系(人)的家庭,所以我创建了一个Families有桌子FamilyID和FamilyDescription,然后添加FamilyID到表People.
现在SELECT * FROM People WHERE FamilyID = 2将回归那个特定家庭的每个人.
我认为这是一个可以接受的想法; 但是,我在努力学习如何融入孩子,就像孩子一样.我们有一个非常非常大的家庭,所以每个家庭会有多个孩子.我是否只是将它们添加到桌面人物中,如果是这样,我如何区分孩子们和成年人的关系?
我非常感谢任何见解,谢谢.
问题PEOPLE.familyid在于它确保一个人只能属于一个家庭.这意味着如果你想区分直系亲属和大家庭,你会看到一个层次结构来关联这些家庭,当它们不一定是分层的时候......
最容易使用的解决方案是包含一个多对多表,因此您可以将PEOPLE记录与任意数量的FAMILY记录相关联:
PEOPLE.id)FAMILY.familyid)如果要显示人与人之间的关系 - 您需要使用关系类型表(type_code,description)和关联关系:
PEOPLE.id)PEOPLE.id)RELATIONSHIP_TYPE_CODES.RELATIONSHIP_TYPE_CODE)| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |