سؤال

ممكن مكررة:
مزايا وعيوب مفاتيح قاعدة البيانات GUID / UUID

هل هناك أي ظروف حيث من الضروري استخدام GUIDs كمسكات رئيسية في SQL Server 2005/8 DB. على سبيل المثال، هل يستخدم استخدام إطار MS Sync Framework هذا، أو النسخ المتماثل للبيانات؟

هل كانت مفيدة؟

المحلول

ستستخدم GUIDs كمفتاح إذا كنت بحاجة إلى مزامنة قواعد بيانات متعددة عبر النسخ المتماثل.

سبب آخر لاستخدام GUIDS هو إذا كنت ترغب في إنشاء صفوف على بعض العميل البعيد، على سبيل المثال تطبيق WinForms، ثم أرسل تلك الموجودة إلى الخادم عبر خدمات الويب إلخ.

إذا قمت بذلك، فأنا أقترح بشدة أنك تتأكد من تحديد مؤشر المسافات المستندة الخاصة بك بناء على Intressing Auto Accedement غير فريد من نوعه. يمكن أن تكون عبارة عن صفوف تعبئة كاميرات كبيرة في جدول حيث يكون الفهرس متفاوت المسافات GUID.

تحديث: إليك مثال على كيفية إعداد جدول مثل هذا:

CREATE TABLE [dbo].[myTable](
[intId] [int] IDENTITY(1,1) NOT NULL,
[realGuidId] [uniqueidentifier] NOT NULL,
[someData] [varchar](50) NULL,
    CONSTRAINT [PK_myTable] UNIQUE NONCLUSTERED 
    (
   [realGuidId] ASC
    )
)

CREATE CLUSTERED INDEX [IX_myTable] ON [dbo].[myTable] 
(
[intId] ASC
)

سوف تقوم بإدخالها في الطاولة كالمعتاد على سبيل المثال:

INSERT INTO myTable VALUES(NEWID(), 'Some useful data goes here')

تحديث: لقد استمعت إلى حلقة جيدة حقا للحلقة التي تتحدث عن هذا يستحق الاستماع - عرض رقم 447.

نصائح أخرى

أنا أستخدم GUIDs ككاتب أساسية، لأنني لا أريد أن أحصل على مفاتيح أساسية مركبة عندما أقوم ببناء تطبيقات مع قواعد البيانات الموزعة وقاعدة بيانات مركزية واحدة مزامنة مع البيانات من جميع تلك الموزعة. مع GUIDs أنا متأكد (تقريبا *) لن يكون لدي صراع (انتهاك القيد) عندما أسحب البيانات من جميع DBS إلى المركزية.

* من غير المرجح أن يكون له نفس GUID نفسها في مكانين مختلفين، ولكن ليس مستحيلا.

عندما تكون قاعدة البيانات غير مركزية أو يتم تنفيذ بعض المجموعة عن بعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top