ايجاد فيلد يونيك در sql

سلام دوستان
همانطور كه مي دونيد معمولا در sql براي فيلد primary key از نوع int استفاده مي شه ولي خوب اين مارو محدود مي كنه به خاطر محدوديت نوع عددي.
من چند وقت پيش يك مقاله خوندم كه يك سيستم توليد كليدهاي غير تكراري نوشته بود كه از نظر محدوديت خيلي خيلي بيشتر از نوع عددي قابل استفاده بود ولي حالا هرچي مگردم پيداش نمي كنم. كسي ميتونه منو راهنمايي كنه؟
من مي خوام يك فيلد يونيك داشته باشم كه محدوده بيشتري رو تحت پوشش بده بجاي نوع عددي. اگه بخوام با c# بنويسم كه مشكلي نيست ولي مي خوام تو خود sql باشه، فكر كنم بايد از trigger استفاده بشه. كسي كد آماده داره؟
 

TNZ187

Member
یه سوال.

سلام
می بخشید که به جوای جواب سوال می پرسم . :)
همانطور كه مي دونيد معمولا در sql براي فيلد primary key از نوع int استفاده مي شه ولي خوب اين مارو محدود مي كنه به خاطر محدوديت نوع عددي.
این محدودیت چیه ؟ یعنی منظور شما از محدودیت چه جور محدودیتی ؟
چون SQL نوع های یونیک دیگه ای رو هم داره . مثل UNIQUEIDENTIFIER که خوب شما می تونید اساس کار اون رو با انتخاب Is RowGUID روی سیستم GUID تنظیم کنید و برای اینکه همیشه جواب بده ، مقدار DEFAULT اون رو با NewID() تنظیم کنید .
این کار ( GUID ) همیشه به شما یک عبارت تصادفی غیر تکراری می ده . حالا اون کدی که شما می فرمایید کار دیگه ای انجام می داده ؟:sad:
 
دوست عزیز همان طور که میدانید محدوده عدد int بین -2^31-1 و 2^31-1 است. اون کدی که من گفته بودم از ترکیب عدد و کلیدهای کیبورد یک کلید ایجاد می کرد که تعداد کلیدهای بیشتری رو تحت پوشش قرار می داد.
در مورد GUID چند تا میتونه ایجاد کنه که یونیک هم باشه؟
 

TNZ187

Member
Guid

سلام
تا اون جا که من می دونستم ، Guid بی نهایت عدد غیر تکراری تولید می کنه.
 

جدیدترین ارسال ها

بالا