我怀疑如何在组合键时将其作为表中的外键引用,但是我只需要键的一部分。
示例(表“语言”和“国家/地区”没有问题,疑问在“标志”表中):
CREATE TABLE [dbo].[Languages](
[Id_Language] [int] IDENTITY(1,1) NOT NULL,
[Language] [varchar](50) NOT NULL
CONSTRAINT [PK_Languages] PRIMARY KEY CLUSTERED ([Id_Language]))
CREATE TABLE [dbo].[Countries](
[Id_Country] [int] NOT NULL,
[Id_Language] [int] NOT NULL,
[Country] [nvarchar](80) NOT NULL,
CONSTRAINT [PK_Countries] PRIMARY KEY CLUSTERED ([Id_Country], [Id_Language])
FOREIGN KEY([Id_Language]) REFERENCES [dbo].[Languages] ([Id_Language]))
最后这里是个疑问(因为国旗的图片是每个国家的,但并不取决于语言)
CREATE TABLE [dbo].[Flags](
[Id_Flag] [int] IDENTITY(1,1) NOT NULL,
[Id_Country] [int] NOT NULL, ------ HOW CAN I DO IT?????????????
[Image] [image] NOT NULL
CONSTRAINT [PK_Flags] PRIMARY KEY CLUSTERED ([Id_Flag]))
结果应该是:
希望您能帮助我。
提前感谢。
如果我正确理解了这个问题,您希望标志表引用“国家/地区”表吗?如果通过添加外键约束来更改表,则意味着在标记表中插入/更新数据时需要提供有效的国家/地区。
ALTER TABLE dbo.Flags
ADD CONSTRAINT [fk_constraint_name] FOREIGN KEY (Id_Country)
REFERENCES dbo.Countries (ID_Country)