PDA

View Full Version : سوال: مشاوره در نحوه طراحی بهینه بانک برنامه سی شارپ



csharpcollegian
سه شنبه 26 خرداد 1394, 20:15 عصر
با عرض سلام و وقت به خیر خدمت دوستان عزیز
میدونم سوالم زیاد مرتبط با این بخش نیست، ولی خب چون حرفه ای های سی شارپ اینجان، اینکارو کردم
من دارم یه بانک واسه یه برنامه که میخوام با سی شارپ کد بزنم طراحی می کنم
یه جدول توو این بانک دارم به اسم سرباز که فیلدهای بسیار زیادی داره مثل نام، نام مستعار، نام پدر، کد ملی، کد کارگزینی، شماره حساب و ...
تقریبا چهل پنجاه تا فیلد میشه !!!
سوال من اینه که خب روش عادی اینه که همه اطلاعات خام مربوط به سرباز رو داخل یه جدول به اسم سرباز بزنم ولی خب مشکل اینه که فیلد هاش خیلی زیاد میشه و باعث سردرگمی میشه !
میگم اگه بیام اطلاعات مربوطه رو به دسته های مختلف تقسیم کنم و اونا رو در جدول های جداگانه(که با کلید خارجی به جدول اصلی یعنی جدول سرباز وصل شده اند) ثبت کنم بهتر نیست ؟
اطلاعات خیلی راحت تر و قابل فهم تر قابل دستیابی میشن !
مثلا:
جدول سرباز:نام، نام، نام مستعار، نام پدر، کد ملی، کد کارگزینی، شماره حساب...
جدول اطلاعات تحصیلی سرباز: مقطع تحصیلی، رشته تحصیلی، گرایش، نام دانشگاه...
جدول اطلاعات جسمی سرباز:رنگ چشم، قد، وزن، گروه خونی...
.
.
.
آیا اینجوری بهتر نیست ؟
تعدد جدول ها توو این روش، طراحی بانک رو غیر استاندارد نمی کنه ؟
ممنون از همه دوستان

asman.abi
سه شنبه 26 خرداد 1394, 20:20 عصر
بله. همین که گفتی مناسب این کار هست.
تعدد جداول بر اساس فیلد های مرتبط

موفق باشید.

Mahmoud Zaad
سه شنبه 26 خرداد 1394, 20:42 عصر
سلام
هر جا که ممکنه چند نوع یا چند ردیف اطلاعات داشته باشیم یا نیاز باشه سوابق یه موضوعی رو بایگانی کنیم باید براش جدول جدا طراحی بشه. مثل چیزی که نوشتید مقاطع تحصیلی از ابتدایی شروع میشه تا دکترا و بالاتر، هر شخصی هم تو یه سالی این مدارک رو گرفته پس یه جدول جدا برای مقاطع میخوایم. که توش کد شخص و نوع مدرک و ... رو ثبت می کنیم.
شماره حساب همینطور شاید نیاز بشه چند شماره حساب از شخص داشته باشیم.
شماره تلفن ها و آدرس ایضاً.
وزن اگه نیاز به نگهداری سابقه ش نیست در همون جدول اصلی باشد، قد هم چون تو این سن دیگه تغییری نداره تو جدول اصلی باشد.

-------- ویرایش

انواع رنگ چشم، استان و شهر محل تولد، نام بانک و مواردی از این دست رو باید در یک جدول داشته باشیم و از کدش در جدول اصلی استفاده کنیم...
البته بعضی موارد که تعدادشون خیلی کمه رو میشه در خود کوئری و با استفاده از switch بهشون دسترسی داشت. مثلاً در مورد گروه خونی هم میشه عنوانش رو مستقیما در جدول اصلی درج کرد، هم میشه مثلاً برای A+ کد 1 رو ثبت کرد و در هنگام کوئری گرفتن با switch بگیم که به جای کد 1 گروه A+ رو نمایش بده.

reza_ali202000
سه شنبه 26 خرداد 1394, 23:02 عصر
در طراحی بانکها یه مولفه وجود داره به نام نرمالایز کردن یعنی تا اونجایی که جا داره دیتابیس رو گسترش بدین و جدولهاتون رو زیاد کنید. مثلا حتی برا جنسیت هم جدول جدا در نظر بگیرید.
حالا دوباره یه مولفه دیگه میگه که دینرمالایز انجام بدین مثلا چون جنسیت فقط مذکر و مونث هست پس جدول جنسیت حذف میشه و ادغام میشه. حالا بسته به نوع کارتون نرمالیزه و دینرمالیزه انجام بدین.
اگه گزارش خاصی نیاز نیست همون دینرمالایز ببرید جلو وگرنه نرمالایز کنید.