PDA

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



zizi_zizi69
جمعه 12 آبان 1385, 19:30 عصر
با سلام
من مشغول طراحی صفحات وب برای مشاهده نمره با asp.net هستم . بانکم من که با access طراحی شده شامل جداول زیر است:
1.جدول دانشجو (pno,stuid,name,fname,…)
2. جدول استاد (pno,Tid,name,fname,.. )
3. جدول درس (pno,Did,name,…)
4.جدول کلاس(pno,classid,stuid,Did,tid,Nomra)
موجودیت های ما student,techer,Darss هستند.جدول class هم برای ارتباط بین جداول است که Nomra در آن قرار می گیرد.
هر چند فکر می کنم بدلیل افزونگی اطلاعاتی که در جدول class ایجاد میشود شاید بهتر می بود این جدول به دو جدول (class,List) شکسته میشد ؟!(نظرتون چیه؟)
4.جدول class (pno,classid,Did,Tid)
5. جدول list (pno,classid,stuid,nomra)
در جداول pno به دلیل مدیریت بهتر و راحتر دستورات sql بکار میرود. (نظرتون چیه؟)
یک صفحه ورود دانشجو دارم ، که دانشجو در آن نام کاربری وپسورد را وارد می کند.حال فرضا دانشجو برای اولین بار وارد سایت شده است او شماره دانشجویی خود را بعنوان username وارد میکند(برای اینکه فیلد دیگری را اضافه نکنم از همان stuid استفاده می شود (نظرتون چیه؟)) و چون password ندارد برای اولین بار با همان stuid وارد می شود ولی بعد باید بتواند رمز را تغییر دهد.
(ستونی هم بعنوان pass در جدول student در نظر گرفته شده .من جدول جداگانه ای برای username ,pass در نظر نگرفتم نمی دانم این کارم در تعیین سطح دسترسی ها که بعدا می خواهم انجام دهم که مثلا student به صفحات استاد دسترسی نداشته باشد مشکلی ایجاد نمی کند؟)
لطفا مرا راهنمایی کنید.

samaneh_h
شنبه 13 آبان 1385, 08:11 صبح
ببین در هر صورت شماره دانش آموز باید فیلد کلیدی باشه پس تو از طریق شماره دانش آموز می‌تونی کلاس دانش آموز رو پیدا کنی و همچنین استادی که اون کلاس رو درس می‌ده.من می‌گم یه تیبل فقط مشخصات کلاس رو نگهداره و یک تیبل شامل شماره دانش آموز و کد درس و نمره رو نگهداره

zizi_zizi69
شنبه 13 آبان 1385, 14:20 عصر
در هر صورت شماره دانش آموز باید فیلد کلیدی باشه
فیلد stuid فیلدی unique است و در واقع کاربر هم با این کلید اطلاعات مورد نظر را درخواست می کند.ولی در هنگام نوشتن دستورات و بدست آوردن رکورد مورد نظر pno مربو طه که auto number است بدست آورده و با آن کار می کنیم.
من سوالاتم چیز دیگه ای است.مثلا دقیقا نمی دانم در سیستم دانشگاه آیا برای یک درس که دو استاد متفادت دارد دو کد درس در نظر میگیرند. یا نه یک کد درس است با گروههای متفاوت. مرجعی برای اینکه این table ها و relation آنها را مشخص کرده باشد ندارید.

shabani
یک شنبه 14 آبان 1385, 09:15 صبح
برای هر درس که ارائه می گردد یک مشخصه جدید ایجاد می گردد برای مثال اگر درس ریاضی 1 رشته مهندسی کامپیوتر شماره درس 11122 را داشته باشد و دو کلاس از این درس ارائه شود دو مشخصه جدید ایجاد گردیده و این درس با مشخصه های متفاوت ایجاد می شود

zizi_zizi69
یک شنبه 14 آبان 1385, 23:34 عصر
اطلاعات ترم را در کدام جدول وارد کنم.چجوری مشخص میشه هر دانشجو در ترم چه درسهایی را گرفته؟

mohsenna30ri
دوشنبه 15 آبان 1385, 08:25 صبح
بهترین کار اینه که فایل اکسست رو آپلود کنی تا برات ردیفش کنیم
جهت کاهش چشمگیر حجم فایل اکسس ، یکبار
TOOLS>DATABASE UTILITY>COMPACT AND REPAIR...
را انجام بده بعدا زیپش کن

سنبله کار
دوشنبه 15 آبان 1385, 10:14 صبح
من هم با نظر ایشون موافقم

zizi_zizi69
دوشنبه 15 آبان 1385, 11:30 صبح
این هم فایل البته با عجله شد امیدوارم اشکالی پیش نیومده باشه!

mohsenna30ri
دوشنبه 15 آبان 1385, 13:53 عصر
تغییرات در برنامه شما اعمال گردید امیدوارم به درد شما و دوستان بخورد
:لبخند
5603
تمام جداول تغییر اساسی یافت
مثلا جدول درس یا کلاس به کل اشتباه بود زیرا نام استاد هم به درس تعلق نمی گیرد و هم به کلاس ، بلکه فقط به کلاس تعلق می گیرد چون یک درس ممکن است بصورت موازی توسط دو استاد ارائه شود و مواردی شبیه به این ...

zizi_zizi69
دوشنبه 15 آبان 1385, 21:06 عصر
اولا از اینکه فایل مرا دیدید و وقت گذاشتید و مرا در رفع مشکل راهنمایی کردید ممنون.
فقط یک چند تا نکته هست که باید بگم.

جدول درس یا کلاس به کل اشتباه بود زیرا نام استاد هم به درس تعلق نمی گیرد و هم به کلاس ، بلکه فقط به کلاس تعلق می گیرد

من نام استاد را به درس تعلق ندادم و فقط در جدول کلاس قرار دادم. اون ساعات تئوری و عملی بود شاید چون cption را مشخص نکردم واضح نبود.

یک درس ممن است بصورت موازی توسط دو استاد ارائه شود

من این را هم لحاظ کردم.در جدول کلاس یک کد درس میتواند دو کد استاد متفاوت داشته باشد و هر دو هم unique تعریف شده اند.

درست است اگر من جدول type darss یا madrak را اضافه کنم از دوباره نویسی اطلاعات کم می کند و بنظر من ضروری نیست.
من در فایل قبلی relation ها را نکشیده بودم اینجا درست کردم.

راستی من فرمهام رو باید با asp.net بسازم.

mohsenna30ri
سه شنبه 16 آبان 1385, 07:14 صبح
با این فایلی که آپلود کردید بله درست است اما نظر شما را به چند نکته جلب می کنم

درست است اگر من جدول type darss یا madrak را اضافه کنم از دوباره نویسی اطلاعات کم می کند و بنظر من ضروری نیست.
در بانک اطلاعات هر چه ما وضوح برنامه را بالا بریم و اشتباه کاربر را پیش بینی کرده و جلوی آنرا بگیریم کلی در وقت مان صرفه جویی کرده و در کل به نفع ماست مثلا استفاده از کومبو بجای نوشتن دقیق اطلاعات برای مثال اگر شما روزی خواستید از دروس اختیاری تان گزارش بگیرید باید اول کوئری تنظیم کنید که شامل کلاس و درس و انتخاب واحد و دانشجو باشد ، حال فیلد نوع درس را طوری تنظیم می کنید که دقیقا برابر کلمه "اختیاری" باشد تا اینجا درست، حال اگر در هنگام ورود اطلاعات توسط کاربر برای یکی از دروس قبلی بجای کلمه اختیاری کلمه "ا ختیاری" ثبت شده باشد دیگر گزارش شما کامل نیست در صورتی که اگر از کومبو استفاده کنید دیگر با این گونه مشکلات برخورد نمی کنید و دیتا اینتری بصورت روان انجام می گیرد
:لبخند: :لبخند: :لبخند:
به هر حال موفق باشید - بای

skywork
یک شنبه 28 آبان 1385, 15:05 عصر
بانک اطلاعاتی اکسس در ASP.NET رو کسی می دونه

samaneh_h
یک شنبه 28 آبان 1385, 15:41 عصر
شما می‌تونید از AspMaker استفاده کنید .این برنامه از روی فایل اکسس ASP می‌سازه

heydari2008
سه شنبه 18 تیر 1387, 10:14 صبح
سلام
استادمون ازما خواسته که نرمالسازی سطح 1و2و3 رو روی یک جدول اعمال کنیم میخواستم ببینم باید چکار کنم چون من چندان با نرمالسازی آشنا نیستم
ممنون میشم کمکم کنید

shaghaghi
سه شنبه 18 تیر 1387, 10:32 صبح
سلام
استادمون ازما خواسته که نرمالسازی سطح 1و2و3 رو روی یک جدول اعمال کنیم میخواستم ببینم باید چکار کنم چون من چندان با نرمالسازی آشنا نیستم
ممنون میشم کمکم کنید
سلام
احتمال قوی در این بخش سایت موضوعاتی از این دست خواهید یافت:
http://barnamenevis.org/forum/forumdisplay.php?f=48