这是交易:这是我的第一个数据库项目,恐怕我对这个问题的解决方案不是最好的。数据库跟踪不同“类型”的合作者。这些类型是公司、组织、雇佣工人、其他“人”......
所有这些都有完全不同的信息集,但它们都有一个共同点——联系信息。我决定让用户输入他想添加到任何合作者的什么样的联系信息,无论是电子邮件、电话、URL、传真等等……
所以我创建了“ Contacts
”表,所有合作者的所有联系数据都将被放入其中,无论合作者是什么类型。
该TablesList
表包含合作者类型列表(公司、组织、工人)
联系人表中的每一行都必须包含"TableID"
标识合作者类型的数字(公司/工人/组织...),并且必须包含"RowID"
标识联系人所涉及的确切公司/工人/组织的数字。
存在的问题是 Contacts 表在 1 列中包含来自其他 3 个表的外键,这不好。我可以删除关系并只在 DBMS 不知道约束的情况下用 thos ID 填充列,但这对我来说似乎不是一个好的解决方案,所以现在我怀疑这个想法是否有任何好处。
你有什么建议?
请记住,如果需要,将来可能会添加更多类型的合作者(如临时工/合同工、代理机构),并且联系人表也应设计为支持它们
提前致谢 !
顺便说一句,我使用 SQL CE 和 C#
这是正在发生的事情的草图:
编辑
虽然感觉不对,但我只是删除了关系,到目前为止它在我的应用程序中运行良好