kavoshgar63
سه شنبه 06 اسفند 1387, 20:30 عصر
سلام دوستان
من دارم برای یک موسسه آموزشی تحت نظر فنی و حرفه ای یک سایت می سازم.
توی طراحی جدولش کمی گیج شدم اگه شما راه حلی دارین پیشنهاد کنید.
از ابتدا شروع می کنم به تو ضیح دادن.
1- هنر جو مبلغی رو به حساب موسسه واریز می کنه و بعد میاد اینترنت برای ثبت نام.
2- در سایت ما ابتدا برای خودش یه نام کاربری می سازه که این فیلد ها رو داره:
UserTable(userid,username,userpass,useractive)
userid primarykey
3- بعد مشخصات خودش رو درج می کنه از قبیل نام ، نام خانوادگی ، شماره ملی و .... 20 تا فیلد دیگه .
نمونه ای از فیلدهای این جدول:
registertable(registerid,name,family, nationalid,birthday,city,address,tel,....)
registerid primary key
تذکر: قبل از این که سایت راه اندازی بشه مسئول سایت نام دوره ها و اساتید رو در جداول مربوطه درج می کنه.
lessontable(lessonid,lessonname,teacherid,lesson active,lessonAmount)
lessonid primary key
teacher id foriegn key
teachertable(teacheerid,teachername,teacheramily)
techerid primary key
4- این موسسه دوره های هفتگانه ICDL رو آموزش میده . من قبلا توی همین جدول فیلد lessonid که کلید اصلی دوره ها بود رو درج کردم که بعد متوجه شدم کارم اشتباه بوده.
تا اینجای کار مشکلی نیست.:متفکر:
از این به بعد رو توجه کنید
هر کاربر می تونه در آن واحد در چند دوره ثبت نام کنه و ما نمی خوایم برای هر بار ثبت نام بیاد 25 تا فیلد رو پر کنه یعنی این که کاربر باید یکبار نام کاربری تعریف کنه و یک بار هم مشخصاتش رو درج کنه و بتونه n بار در دوره ها ثبت نام کنه.
حالا من باید یه جدول جدید درست کنم که داخل اون شماره فیش بانکی درج بشه و تاریخ ثبت نام و کد دوره و کد کاربر و کد رجیستر که مشخصات این هنرجویه.
جدول من این شکلی میشه:
NewTable(id,shomarefish,lessonid,userid,registerid ,tarikh sabtnam,active)
id primarykey
lessonid F.K
UserID F.K
RegisterId F.K
نا گفته نماند وقتی این دوستان در سیستم ثبت نام کردن بعد از 48 ساعت مدیر سایت اگر صحت اطلاعات رو تایید کرد (فیش بانکی) تیک تایید رو میزنه و کاربر اکتیو میشه و میتونه بیاد توی سایت و از امکاناتی که ما بهش میدیم(دانلود فایل دروس) استفاده کنه.
حالا من چیزی که به ذهنم رسیده اینه که اون اکتیو کاربر اضافه است و باید پاک بشه و همین اکتیو روی جدول جدید کفایت می کنه این جدول اخیر اتصال دهنده جدول کاربر و دوره (درس) و مشخصات ثبت نامه .
سئوال من اینه :
1- آیا این که این سه تا فیلد رو کلید خارجی گرفتم خوبه یا بده؟
2- راه بهینه تری هست یا نه؟
3- بانک ما با این روش دچار افزونگی نمیشه یا میشه؟
4-برای ذخیره کردن داده ها در جدول آیا بهتره که با این روش برم جلو(روش : اول کاربر برای خودش نام کاربری بسازه توی بانک ثبت بشه بعد بیاد لاگین بشه مشخصات جدول رجیستر رو کامل کنه بعد توی بانک insert کنه بعد جدول جدید( که هنوز نمی دونم اسمش رو چی بزارم)
رو با درج شماره فیش بانکی و انتخاب دوره کامل کنه حالا باید مشخصات داخل بانک ثبت بشه )
5- اگر کاربر بخواد یک باره مثلا سه تا دوره رو ثبت نام کنه چی باید کرد ؟
چطور میشه تشخیص داد که کاربر اشتباها یک دوره رو دوباره ثبت نام نکنه؟
فکر کنم برای خودش یک سناریو شد :کف: دیگه فعلا تا همینجا به ذهنم رسید ولی فکر می کنم که هنوز خیلی نکات دیگه داخلش نهفته است.
دوستان منت سر ما بزارن و هر چه سریعتر روش های بهینه رو پیشنهاد بدن.
من دارم برای یک موسسه آموزشی تحت نظر فنی و حرفه ای یک سایت می سازم.
توی طراحی جدولش کمی گیج شدم اگه شما راه حلی دارین پیشنهاد کنید.
از ابتدا شروع می کنم به تو ضیح دادن.
1- هنر جو مبلغی رو به حساب موسسه واریز می کنه و بعد میاد اینترنت برای ثبت نام.
2- در سایت ما ابتدا برای خودش یه نام کاربری می سازه که این فیلد ها رو داره:
UserTable(userid,username,userpass,useractive)
userid primarykey
3- بعد مشخصات خودش رو درج می کنه از قبیل نام ، نام خانوادگی ، شماره ملی و .... 20 تا فیلد دیگه .
نمونه ای از فیلدهای این جدول:
registertable(registerid,name,family, nationalid,birthday,city,address,tel,....)
registerid primary key
تذکر: قبل از این که سایت راه اندازی بشه مسئول سایت نام دوره ها و اساتید رو در جداول مربوطه درج می کنه.
lessontable(lessonid,lessonname,teacherid,lesson active,lessonAmount)
lessonid primary key
teacher id foriegn key
teachertable(teacheerid,teachername,teacheramily)
techerid primary key
4- این موسسه دوره های هفتگانه ICDL رو آموزش میده . من قبلا توی همین جدول فیلد lessonid که کلید اصلی دوره ها بود رو درج کردم که بعد متوجه شدم کارم اشتباه بوده.
تا اینجای کار مشکلی نیست.:متفکر:
از این به بعد رو توجه کنید
هر کاربر می تونه در آن واحد در چند دوره ثبت نام کنه و ما نمی خوایم برای هر بار ثبت نام بیاد 25 تا فیلد رو پر کنه یعنی این که کاربر باید یکبار نام کاربری تعریف کنه و یک بار هم مشخصاتش رو درج کنه و بتونه n بار در دوره ها ثبت نام کنه.
حالا من باید یه جدول جدید درست کنم که داخل اون شماره فیش بانکی درج بشه و تاریخ ثبت نام و کد دوره و کد کاربر و کد رجیستر که مشخصات این هنرجویه.
جدول من این شکلی میشه:
NewTable(id,shomarefish,lessonid,userid,registerid ,tarikh sabtnam,active)
id primarykey
lessonid F.K
UserID F.K
RegisterId F.K
نا گفته نماند وقتی این دوستان در سیستم ثبت نام کردن بعد از 48 ساعت مدیر سایت اگر صحت اطلاعات رو تایید کرد (فیش بانکی) تیک تایید رو میزنه و کاربر اکتیو میشه و میتونه بیاد توی سایت و از امکاناتی که ما بهش میدیم(دانلود فایل دروس) استفاده کنه.
حالا من چیزی که به ذهنم رسیده اینه که اون اکتیو کاربر اضافه است و باید پاک بشه و همین اکتیو روی جدول جدید کفایت می کنه این جدول اخیر اتصال دهنده جدول کاربر و دوره (درس) و مشخصات ثبت نامه .
سئوال من اینه :
1- آیا این که این سه تا فیلد رو کلید خارجی گرفتم خوبه یا بده؟
2- راه بهینه تری هست یا نه؟
3- بانک ما با این روش دچار افزونگی نمیشه یا میشه؟
4-برای ذخیره کردن داده ها در جدول آیا بهتره که با این روش برم جلو(روش : اول کاربر برای خودش نام کاربری بسازه توی بانک ثبت بشه بعد بیاد لاگین بشه مشخصات جدول رجیستر رو کامل کنه بعد توی بانک insert کنه بعد جدول جدید( که هنوز نمی دونم اسمش رو چی بزارم)
رو با درج شماره فیش بانکی و انتخاب دوره کامل کنه حالا باید مشخصات داخل بانک ثبت بشه )
5- اگر کاربر بخواد یک باره مثلا سه تا دوره رو ثبت نام کنه چی باید کرد ؟
چطور میشه تشخیص داد که کاربر اشتباها یک دوره رو دوباره ثبت نام نکنه؟
فکر کنم برای خودش یک سناریو شد :کف: دیگه فعلا تا همینجا به ذهنم رسید ولی فکر می کنم که هنوز خیلی نکات دیگه داخلش نهفته است.
دوستان منت سر ما بزارن و هر چه سریعتر روش های بهینه رو پیشنهاد بدن.