আমি একটি এসকিউএল সার্ভার 2012 ডাটাবেস বিকাশ করছি এবং আমার ওয়ান-টু-জিরো-ও-ওয়ান সম্পর্ক সম্পর্কে একটি প্রশ্ন আছে।
আমার দুটি টেবিল আছে, Codes
এবং HelperCodes
। একটি কোড শূন্য বা একটি সহায়ক কোড থাকতে পারে। এই দুটি সারণী এবং তাদের সম্পর্কগুলি তৈরি করতে এটি স্কিল স্ক্রিপ্ট:
CREATE TABLE [dbo].[Code]
(
[Id] NVARCHAR(20) NOT NULL,
[Level] TINYINT NOT NULL,
[CommissioningFlag] TINYINT NOT NULL,
[SentToRanger] BIT NOT NULL DEFAULT 0,
[LastChange] NVARCHAR(50) NOT NULL,
[UserName] NVARCHAR(50) NOT NULL,
[Source] NVARCHAR(50) NOT NULL,
[Reason] NVARCHAR(200) NULL,
[HelperCodeId] NVARCHAR(20) NULL,
CONSTRAINT [PK_Code] PRIMARY KEY CLUSTERED
(
[Id] ASC
),
CONSTRAINT [FK_Code_LevelConfiguration]
FOREIGN KEY ([Level])
REFERENCES [dbo].[LevelConfiguration] ([Level]),
CONSTRAINT [FK_Code_HelperCode]
FOREIGN KEY ([HelperCodeId])
REFERENCES [dbo].[HelperCode] ([HelperCodeId])
)
CREATE TABLE [dbo].[HelperCode]
(
[HelperCodeId] NVARCHAR(20) NOT NULL,
[Level] TINYINT NOT NULL,
[CommissioningFlag] TINYINT NOT NULL,
[LastChange] NVARCHAR(50) NOT NULL,
CONSTRAINT [PK_HelperCode] PRIMARY KEY CLUSTERED
(
[HelperCodeId] ASC
),
CONSTRAINT [FK_HelperCode_LevelConfiguration]
FOREIGN KEY ([Level])
REFERENCES [dbo].[LevelConfiguration] ([Level])
)
এটা কি ঠিক?
একটি কোড এবং একটি হেল্পার কোড দুটি পৃথক সত্তা। হেল্পার কোডটি কোনও ব্যবহৃত (কোনও কোডই এর উল্লেখ করে না) হতে পারে, বা ব্যবহৃত হতে পারে (কেবলমাত্র একটি কোডই এর উল্লেখ করে)।
হতে পারে কোড.হেল্পার কোডেড অবশ্যই কোড টেবিল প্রাথমিক কী এর অংশ হতে হবে। তবে নুল কলামটি প্রাথমিকের অংশ হতে পারে কিনা তা আমি নিশ্চিত নই। এটি করে, আমি সেই দুটি বা ততোধিক কোড একই হেল্পার কোডের উল্লেখ করতে বাধা দিতে চাই।
HelperCodeId
কলামটি ইউনিক হিসাবে সেট করা ।
HelperCodeId
পিকে অংশ নিতে চান ? এটি কি কোনও সুযোগেই, কারণ আপনি একই হেল্পার কোডের রেফারেন্স দিতে দুই বা ততোধিক কোডগুলি প্রতিরোধ করতে চান?