PDA

View Full Version : انتخاب فیلد کلیدی در جدول



mahdy.asia
دوشنبه 02 مرداد 1391, 16:58 عصر
ما یک تیم برنامه نویسی هستیم که 50 تا سیستم در یک شرکت تولیدی پیاده سازی کردیم در مورد انتخاب فیلد کلیدی اعتقاد داریم می بایست فیلد از نوع عدد بعنوان سریال جدول ایجاد کنیم که هیچ رابطه ای با فیلد های دیگر نداشته باشد.
مزایای روش :
پرهیز از کلیدهای ترکیبی و پایین آمدن هزینه کدنویسی
بالا بردن قابلیت توسعه سیستم
امکان دادن به کاربر نسبت به تغییر فیلدهای خود با توجه به اینکه فیلد کلیدی نیستند و اشکالی برای تغییر در آن بوجود نمی آید
اگر کسی نظری داره مطرح کنه و دلائل رو هم ذکر کنه

حمیدرضاصادقیان
دوشنبه 02 مرداد 1391, 23:31 عصر
سلام.
درواقع هنگام تعریف کلید ، باید مابقی فیلدهای جدول به اون کلید فقط وابسته باشند نه به بخشی از اون کلید.یعنی اگر ترکیب چندتا فیلد باهم کلید باشند تمامی فیلدها باید به اون کلید وابسته باشند نه به یک بخشی از اون.
اگر مثلا در جداولی میتوان فیلدی از نوع کلید انتخاب کرد اینکارو بکنید ، در غیر اینصورت میتونید از همون روش خودتون استفاده کنید.

mahdy.asia
سه شنبه 03 مرداد 1391, 23:51 عصر
دوست عزیز من برای اون مواقعی که می شود فیلد کلیدی انتخاب نماییم که بقیه فیلدها به آن وابسته باشد مخصوصا در مورد کلید های ترکیبی می گویم ما یک سریال ایجاد می تماییم که هیچ وابستگی به فیلدها ندارد و آن را کلید کلید قرار می دهیم دلائل رو هم که گفتم
مثال :
جدول پرسنلی کد پرسنلی را کلید نمی کنند یک سریال از نوع Identity به جدول اضافه می کنند و آن را کلید می کنند
اکنون من تصمیم گرفتم در مورد درستی این روش کمی بررسی نمایم بهمین دلیل تصمیم گرفتم در این سایت موصوع را مطرح نمایم

حمیدرضاصادقیان
چهارشنبه 04 مرداد 1391, 11:36 صبح
دلیلتون چیه که برای جدول پرسنلی که کدپرسنلی بهترین گزینه برای کلید هست یک فیلد دیگه به جدول اضافه کنید؟
راه خوبی نیست که تا میتونیم به جدول فیلد اضافه کنیم.
هرچی بتونیم جداولمون رو کوچکتر کنیم میزان ذخیره سازی رکوردها در یک Page بیشتر خواهد شد که باعث افزایش سرعت کار ما می شود.
بهتره توضیحاتی که در لینک امضای بنده هست در مورد Performance رو مطالعه بفرمائید.
اگر سیستمها تعداد رکوردهای کمی دارند یا زیاد باهاشون کار نمیشه این موارد تاثیر آنچنانی روی سیستم ندارند.
ولی اگر سیستم دارای رکوردهای بالا و تعداد کاربران زیادی باشد ، همین تغییرات کوچک ، تاثیرات زیادی روی بازدهی سیستم خواهد داشت که در همون تاپیک نیز به تک تک این موارد اشاره خواهم کرد.

mahdy.asia
جمعه 06 مرداد 1391, 05:10 صبح
دلیلتون چیه که برای جدول پرسنلی که کدپرسنلی بهترین گزینه برای کلید هست یک فیلد دیگه به جدول اضافه کنید؟

اگر کاربران ارشد اداری به این نتیجه برسند که می بایست شماره شناسائی یکی از پرسنل را تغییر دهند (شناسائی پرسنل به تنهایی اطلاعاتی را به کاربران می دهد)
اگر تا بحال برای شناسائی 4 رقم استفاده می شده است از امروز می خواهند آن را 5 رقمی نمایند
اگر یک پرسنل با یک شماره شناسائی اخراج و وقتی برگردد می خواهند دوباره با همان شناسائی وارد شود ولی پرونده اخراج آن پرسنل با تمامی جزئیات وجود داشته باشد

و ... این موارد همگی در شرکت ما اتفاق افتاده است که بدون استفاده از سریال پرسنلی امکان پذیر نمی باشد و یا بسختی امکان پذیر می باشد این در حالی است که هنگام طراحی این سیستم همگی فکر می کردیم فیلد شناسائی حتما یونیک خواهد بود

این مزایا در مورد جدول فیش حقوقی که فیلد کلیدی آن می بایست ترکیبی باشد (سریال پرسنل،کد ماه) مصداق بیشتری پیدا می کند.
بعضی مصادیق
امکان محاسبات آزمایشی و مقایسه وضعیت های مختلف (با تغییر ثوابت ،مزایا و ...) و تحلیل هزینه های حقوق پرسنل
عدم نیاز به برقراری join دو فیلد کلیدی هنگام ساخت گزارشات (کاهش هزینه برنامه نویسی)