Tambahkan tabel ke-4 khusus untuk nilai yang ingin Anda unikkan, lalu tautkan kunci ini dari tabel ini ke tabel lain menggunakan hubungan satu ke banyak. Misalnya, Anda akan memiliki tabel unik dengan ID, AppName, dan ItemName untuk membentuk 3 tabel tersebut. kolom. Kemudian buat tautan tabel ini ke tabel lainnya.
Untuk cara melakukannya di sini adalah contoh yang baikBuat hubungan satu ke banyak menggunakan SQL Server
EDIT: Inilah yang akan saya lakukan tetapi dengan mempertimbangkan kebutuhan server Anda, Anda dapat mengubah apa yang diperlukan:
CREATE TABLE AllItems(
[id] [int] IDENTITY(1,1) NOT NULL,
[itemType] [int] NOT NULL,
[AppName] [nvarchar](20) NOT NULL,
[ItemName] [nvarchar](32) NOT NULL,
CONSTRAINT [pk_AllItems] PRIMARY KEY CLUSTERED ( [id] ASC )
) ON [PRIMARY]
CREATE TABLE Analog(
[itemId] [int] NOT NULL,
[Value] [float] NOT NULL
)
CREATE TABLE Discrete(
[itemId] [int] NOT NULL,
[Value] [bit] NOT NULL
)
CREATE TABLE Message(
[itemId] [bigint] NOT NULL,
[Value] [nvarchar](256) NOT NULL
)
ALTER TABLE [Analog] WITH CHECK
ADD CONSTRAINT [FK_Analog_AllItems] FOREIGN KEY([itemId])
REFERENCES [AllItems] ([id])
GO
ALTER TABLE [Analog] CHECK CONSTRAINT [FK_Analog_AllItems]
GO
ALTER TABLE [Discrete] WITH CHECK
ADD CONSTRAINT [FK_Discrete_AllItems] FOREIGN KEY([itemId])
REFERENCES [AllItems] ([id])
GO
ALTER TABLE [Discrete] CHECK CONSTRAINT [FK_Discrete_AllItems]
GO
ALTER TABLE [Message] WITH CHECK
ADD CONSTRAINT [FK_Message_AllItems] FOREIGN KEY([itemId])
REFERENCES [AllItems] ([id])
GO
ALTER TABLE [Message] CHECK CONSTRAINT [FK_Message_AllItems]
GO
Dari apa yang saya tahu sintaks Anda baik-baik saja, saya hanya mengubahnya dengan cara ini hanya karena saya lebih akrab dengannya tetapi juga harus berfungsi.