我正在处理具有每个用户类型派生自的现有个人表的数据库。换句话说,有喜欢的表:
Individual: FirstName, LastName, Email,
等跨表共享一个“身份”<lots more
>
员工:IndividualId
客户:IndividualId
现在,我要添加新的用户类型(WeirdPerson)不从派生个人。 (WeirdPerson与其相关的数据明显少于任何个人,而且我真的不希望几乎将个体中的每个字段都设置为WeirdPerson的空值。)
我需要一个关键字段用于表来自WeirdPersons的条目和来自个人的条目。这表明映射表如下所示:
MashedupIndividuals: MashedupId, IndividualId
MashedupWeirdPerson: MashedupId, WeirdPersonId
我想MashedupId是自动生成的场。由于我使用的是TSQL,因此身份似乎是一个不错的选择。除了MashedupId分为两个表格。我考虑过另外一张表:
MashedupIds: MashedupId
设置MashedupId为一个标识,然后在MashedupIndividuals和MashedupWeirdPerson中将其设置为外键。
这是继续前进的最佳方式吗?你会如何解决这个问题?
编辑:为了澄清,我有一个WeirdPerson的唯一信息是一个电子邮件地址。我考虑将个人电子邮件字段拉出来,然后用GlobalPersonId和Email创建一个新的GlobalPerson表。 GlobalPerson表格(或者我使用的任何更好的名字)并不像将WeirdPerson分离成完全不同的类型那样自然。但是......我愿意重新考虑这一立场。
我想我从未见过没有名字或姓氏的人。这些奇怪的人究竟是什么? – jmucchiello 2009-08-31 17:16:23
我编辑了我的问题来解决WeirdPerson的奇怪问题。我想我可以逃脱而不给他们更多的信息。我显然是错的。 :) – Eric 2009-08-31 17:28:24