实体框架/SQL多共享列外键
我有一些类似这样的表格: 表A 表B 表C 表B仅适用于某些用户,但表A和C适用于所有用户。这意味着需要外键[FK_table C_table A]实体框架/SQL多共享列外键,sql,sql-server,entity-framework,database-design,Sql,Sql Server,Entity Framework,Database Design,我有一些类似这样的表格: 表A 表B 表C 表B仅适用于某些用户,但表A和C适用于所有用户。这意味着需要外键[FK_table C_table A] 在数据库级别或使用实体框架时,确保TableC中对TableB的引用不为空时,TableB和TableC中的TableAId都匹配的最佳方法是什么?这是识别关系和生成的自然键的经典用例: 表B 表C 当TableBNo为非NULL时,同一个表A行必须是来自两个表的引用,这仅仅是因为两个外键使用相同的字段TableAId 由于MS SQL Serve
在数据库级别或使用实体框架时,确保TableC中对TableB的引用不为空时,TableB和TableC中的TableAId都匹配的最佳方法是什么?这是识别关系和生成的自然键的经典用例: 表B 表C 当TableBNo为非NULL时,同一个表A行必须是来自两个表的引用,这仅仅是因为两个外键使用相同的字段TableAId
由于MS SQL Server实现外键,因此当TableBNo为NULL时,不会强制执行底部外键。表2是指表A和C中的表B、表1和表3吗?是的!修好了,抱歉,这是漫长的一天!
[Id] IDENTITY INT NOT NULL
[Id] IDENTITY INT NOT NULL,
[TableAId] INT NOT NULL,
CONSTRAINT [FK_TableB_TableA] FOREIGN KEY [TableAId] REFERENCES [TableA]([Id])
[Id] IDENTITY INT NOT NULL,
[TableAId] INT NOT NULL,
[TableBId] INT NULL,
CONSTRAINT [FK_TableC_TableA] FOREIGN KEY [TableAId] REFERENCES [TableA]([Id])
TableAId INT,
TableBNo INT,
PRIMARY KEY (TableAId, TableBNo),
FOREIGN KEY TableAId REFERENCES TableA (Id)
TableAId INT,
TableCNo INT,
TableBNo INT,
PRIMARY KEY (TableAId, TableCNo),
FOREIGN KEY TableAId REFERENCES TableA (Id),
FOREIGN KEY (TableAId, TableBNo) REFERENCES TableB (TableAId, TableBNo)