同一表中的主键和外键
问题描述:
我使用SQL Server 2014和实体框架代码优先。我正在尝试创建一个表格Account Master
,其中包含客户和专栏的详细信息如下。同一表中的主键和外键
-
Id
为自动增量主键 -
Name
为varchar -
City
为varchar -
phonenumber
为varchar -
BrokerId
为INT
现在我的问题是如何指BrokerId
作为相同表名的外键Account Master
与列Id
上的主键。
因为在我的情况下,经纪人也将拥有所有这些细节。除了每个客户都不需要经纪人。我是否应该这样做。
在此先感谢。
答
您可以将外键约束添加到您的CREATE TABLE语句吗?
CONSTRAINT FK_AccMaster_ID FOREIGN KEY (BrokerID)
REFERENCES AccountMaster(ID)
这是将两个表连接在一起的常用方法。 除非我在你的问题中丢失了一些东西...
答
我回答“我是否应该这样做”。
请考虑创建两个单独的平板电脑User和Broker。内存明智,即使用户和经纪人有相同的细节,几乎相同。
如果将为您的表提供可扩展性。能够建立多对多的关系。
同样好的设计意味着让一个表代表单个实体。要查询经纪人,您不希望扫描用户,反之亦然。