2009-04-09 51 views
0

什么是最好的数据库模型,利用该deppending选择的用户类型的用户注册过程中的不同数据,某些领域将需要与否。数据库建模的问题 - 需要deppending用户类型

例: 用户A类要求:名称,电子邮件,出生日期和性别 用户B类要求:公司名称,联系人,电子邮件,N.员工

我觉得最黎民是创建一个包含所有这些字段的表,并使它们允许NULL。

你们会提出什么建议?

回答

0

我以前做过同样的事情。只要您存储客户类型,就不难获得正确的细节。

您可以考虑2个表,如果有将是一个表,它是比其他的大得多使用视图来联合他们,虽然对客户类型的指数会做同样的事情。 “非常相似”我的意思是快速访问一种类型的数据。

关于把所有的数据在一个表中,你不必做任何连接来获取数据,这与书写的查询和易用性的速度帮助的好处。

1

您可以创建一个基地“用户”表中持有任何公共字段,以及其他表是挂关闭用户与FK到基础User.ID.如果没有公共字段,那么只需要有不同的表格,而不是一个带有大量空字段的表格。

1

为了保持一致性,最好为用户提供一个“主表”,其中唯一的字段将是一些用于这两种类型(例如,ID,​​SSN或其他)的用户共同的唯一用户标识符。

然后由你如何表示的专业化。

一种选择是具有在该表中表示的类型的第二字段,然后两个表与细节,每一个类型。在查询时,如果用户的类型为A,则只能确保在TYPE_A表中查找用户的详细信息。

第二种选择是不具有该字段,并依据事实在特定的表格中有记录来表示类型,但这是相当危险的。