受到 Django 建模问题的启发:Database Modeling with multiple many-to-many Relations in Django。db-design 是这样的:
CREATE TABLE Book
( BookID INT NOT NULL
, BookTitle VARCHAR(200) NOT NULL
, PRIMARY KEY (BookID)
) ;
CREATE TABLE Tag
( TagID INT NOT NULL
, TagName VARCHAR(50) NOT NULL
, PRIMARY KEY (TagID)
) ;
CREATE TABLE BookTag
( BookID INT NOT NULL
, TagID INT NOT NULL
, PRIMARY KEY (BookID, TagID)
, FOREIGN KEY (BookID) REFERENCES Book (BookID)
, FOREIGN KEY (TagID) …
Run Code Online (Sandbox Code Playgroud) 我正在使用一个已经存在的“查找”样式表,它在 Microsoft SQL Server 2012 中有一个复合主键(不是我的设计)。我想在另一个表中向它添加一个外键,但只有一个单列,我正在寻找一种解决方法,无论多么不合理(基于 CLR 的自定义库或 dll 劫持,甚至),只是为了看看需要做多少。
下面是一个例子:
CREATE TABLE dbo.Lookup (
FieldName VARCHAR(100) NOT NULL,
Value VARCHAR(100) NOT NULL,
PRIMARY KEY (FieldName, Value)
)
INSERT INTO Lookup (FieldName, Value)
SELECT 'This', 'A' UNION ALL
SELECT 'This', 'B' UNION ALL
SELECT 'That', 'A'
CREATE TABLE dbo.OtherTable (
ID INT PRIMARY KEY IDENTITY(1,1),
Blah VARCHAR(100)
)
ALTER TABLE dbo.OtherTable WITH CHECK ADD CONSTRAINT [FK__OtherTable__Blah]
FOREIGN KEY(Blah) REFERENCES Lookup (Value)
--Cannot create this:
--"There are no primary or candidate …
Run Code Online (Sandbox Code Playgroud)