PDA

View Full Version : طراحی بانک اطلاعاتی دیتا بیس مدرسه بخش مالی



ali_9999
دوشنبه 10 تیر 1392, 22:31 عصر
با سلام
دوستان لطف کنن نظرشون را در قسمت طراحی بانک برای بخش مالی یک مدرسه عنوان کنن.
نکته ای که خیلی من رو مشغول کرده اینه که آیا بهتره که کلیه ترانزاکشن های مالی سیستم را در یک جدول ذخیره کنم اعم از دریافت و پرداخت یا اینکه بیام و جدول های مختلف برای این کار طراحی کنم. مثلا یک جدول برای در یافت شهریه ، یک جدول شاید برای دریافت هزینه سرویسهای دیگه مدرسه ، یک جدول برای پرداخت حقوق معلمین . ...

ali_9999
سه شنبه 11 تیر 1392, 12:16 عصر
دوستان، من قسمت مالی را مثل تصویر زیر طراحی کردم. نظر دوستان چیه؟
یک جدول کلیه ترانزاکشن های سیستم را ذخیره می کنه. خیلی از فیلد های این جدول کلید خارجی هستند.
یک جدول برای ذخیره کلاس مشخص دانش آموز و شهریه کلاس و تعداد قسط هست.
یک جدول هم برای ذخیره سرویس هایی که دانش آموز می گیره.
پرداخت حقوق استادان و کارمندان هم در جدول tbl_transaction ذخیره می شه.

http://upcity.ir/images2/15352946380180340667.jpg
نظر دوستان چیه؟ همین جوری خوبه یا اینکه جدول بیشتر بشه مثلا یک جدول fees collection یک جدول پرداخت حقوق و ...

بهزاد علی محمدزاده
سه شنبه 11 تیر 1392, 12:37 عصر
علی جان می دونی مشکل چیه ؟ اینه که اگه کسی بیاد جواب بده , دیگه باید باهات درگیر طراحی بشه :لبخند: حوصله می خواد ...

در جدول tbl_transaction وقتی حقوق یه کارمند و پرداخت می کنی , چه نیازی به کلید student داری ؟

بهزاد علی محمدزاده
سه شنبه 11 تیر 1392, 12:43 عصر
و بعدش , transaction یک به چند هست با student_class , و این هم یک به چند هست با discount و این هم خودش یک به چند هست با student_service و این هم یک به چند با student , و باز خود student هم یک به چند شده با trasaction ... , به نظر میرسه Loop داری تو این قسمت .

ali_9999
سه شنبه 11 تیر 1392, 12:55 عصر
بهزاد جان سوال من هم همینه. جدول tbl_transaction تمام پرداخت ها و در یافت ها را در خودش ذخیره می کنه. پس باید کلید student_ID هم باشه چون دانش آموز پرداخت می کنه. حالا این کار درست هست که تمام

عملیات دریافت و پرداخت در یک جدول انجام بشه ؟

همونطور که در تصویر می بینین tbl_transaction اطلاعات مربوط به پرداخت ها و هزینه های دیگهه سیستم را هم ذخیره می کنه. مثل قبوض انرژی و ....

فیلد expence_type برای ذخیره نوع هزینه پرداختی و income_type برای ذخیره نوع هزینه دریافتی هست .

ali_9999
سه شنبه 11 تیر 1392, 13:05 عصر
و بعدش , transaction یک به چند هست با student_class , و این هم یک به چند هست با discount و این هم خودش یک به چند هست با student_service و این هم یک به چند با student , و باز خود student هم یک به چند شده با trasaction ... , به نظر میرسه Loop داری تو این قسمت .


تشکر از اینکه نگاه انداختی و لی transcaction با student_class رابطه ای نداره.:متعجب:

اون بقیه هم که رابطه دارند فکر می کنم باید رابطه داشته باشند . یعنی ایجاب می کنه کلید اصلی در جدول مادر بیاد نقش کلید خارجی رو در جدول دیگه بازی کنه. با این کار تضمین می کنیم که اطلاعات وارد شده صحیح

تر باشند.

بهزاد علی محمدزاده
سه شنبه 11 تیر 1392, 13:22 عصر
تشکر از اینکه نگاه انداختی و لی transcaction با student_class رابطه ای نداره.آره خطای دید بود .


جدول tbl_transaction تمام پرداخت ها و در یافت ها را در خودش ذخیره می کنه.چه پرداخت هایی ؟ چه لزومی داره وقتی دانش آموز داره پرداخت می کنه , توی رکوردش ساعت تدریس باشه ؟ حتی اگر خالی هم بذارید اشتباهه , برای پرداخت می تونید یه جدول جدا برای نوع پرداخت داشته باشید .

بعد payment_Id و payment_no , جدولشون کجاست ؟ ( نکنه باز هم خطای باشه ... ) . اگر یه جدول برای پرداخت حقوق داشته باشی اشکالی داره ؟ چون اینجا دو نوع پرداخت داری , یکی به کارمند و یکی به معلم , من نمی دونم معلم ساعتی داری و معلم با حقوق ثابت ؟ یا فقط ساعتی ؟

شما بخش ها تون از هم جداست و نباید یکی بشه , بخش پرداخت حقوق جداست از بخش دریافت از دانش آموز , و هزینه های مدرسه . اینها چرا باید در یه جدول transaction مشترک باشند ؟

اینها رو از هم جدا کنید ببینم چطور میشه .