عرض سلام خدمت تمامی اساتید طراحی دیتابیس
بنده در زمینه طراحی دیتابیس با مشکلی روبرو شده ام که امیدوارم دوستان بتوانند راه حل مناسبی برای آن ارائه نمایند.
اینجانب در حال حاضر همراه با یک تیم برنامه نویس، در حال نوشتن یک نرم افزار نسبتا بزرگ می باشم که یک بخش آن اتوماسیون اداری و دبیرخانه می باشد. این نرم افزار باید قابلیت Replication اطلاعات و تعدادی دیگر از قابلیت ها را داشته باشد.
بهترین گزینه ای که در حال حاضر برای استفاده از کلید اصلی داریم، uniqueidentifier می باشد. این نوع داده در حقیقت تمام خواصی که ما از آن انتظار داریم را دارا هست ولی مشکلاتی دارد که ما را در استفاده از آن مردد نموده است. (موارد ذکر شده در زیر با توجه به دانش بنده و مطالعات مربوطه می باشد و از صحت کامل آن ها مطمئن نیستم)
حجم اطلاعاتی که وارد جداول می شوند و در حقیقت در سیستم در حال جریان هستند بسیار زیاد است و با توجه به گذشت زمان، همچنان افزایش می یابد. با توجه به اینکه توصیه می شود که هنگامی که از این نوع فیلد استفاده می شود، آن را Cluster نکنیم، آیا این مسئله راندمان سیستم را با این حجم اطلاعات دچار مشکل نمی کند؟
با توجه به اینکه این نوع داده 16 بایت را مورد استفاده قرار می دهد، آیا این مسئله بخصوص در استفاه از Join ها و Where Condition راندمان سیستم را با مشکل مواجه نمی کند؟
اگر این نوع داده را به عنوان کلید اصلی استفاده کنیم، باید یک فیلد دیگر نیز از نوع DateTime به جدول اضافه کنیم تا قابلیت Sort را ایجاد نماییم.
البته راه های دیگری مانند استفاده از Composite Key و غیره را هم بررسی نموده ام ولی این راه حل ها هم مشکلات خاص خودشان را دارند.
با توجه به مواردی در که در بالا اشاره کردم و سایر موارد، چه راه حلی به من پیشنهاد می کنید؟
بسیار متشکرم