PDA

View Full Version : طراحی دیتابیس



m2148059
دوشنبه 08 شهریور 1389, 16:23 عصر
سلام در طراحی یک دیتابیس من در یک موضوعی گیر کردم :
من 10 تا شرکت دارم که 100 تا آدم می خوان بهشون امتیاز بدن و بعدا قراره امتیازا با هم جمع شن به ازای هر شرکت . و حالا یک سری کارای دیگه به نظر شما کدام طراحی بهتره :
1- یک جدول درست کنیم که سه ستون داشته باشه
نام کاربری که امتباز میده نام شرکتی که به آن امتیاز می دیم امتیاز داده شده
ایراد به نظر من : اگر یک شرکتی بخواد جمع امتیازاشو ببینه یا بخواد ببینه فلان کاربر چه امتیاری به او داده باید شرکتای دیگه و کاربرای دیگه که به آن شرکتا امتیاز دادن رو هم از روشون تو اون جدول گزر کنه تا به هدف خودش تو اون جدول برسه که این یعنی کاهش سرعت . (البته شاید)
2- به ازای هر شرکت یک جدول درست کنیم که 2 ستون داشته باشه :
نام کاربری که امتیاز داده امتیاز داده شده
ایراذ : تعداد جدول های درست شده بالا می رود که این هم ممکنه یک ایراد باشه .
این یک مثال کوچک بود در حجم خیلی بزرگ مثلا چند صد شرکت با چند هزار رای دهنده کدام نوع بهتره . اگر هم مدل جدیدی به نظرتون رسید مطرح کنید ممنون می شم .(در اینجا فرض کنید می خواهیم اطلاعات را درآینده بر اساس شرکتها مرتب کنیم بین شرکتها مقایسه کنیم )

yosefi_hossein
دوشنبه 08 شهریور 1389, 16:53 عصر
سلام فکر میکنم 3 تا جدول داشته باشی بهتره 1 جدول واسه مشخصات شرکتها 1 جدول برای مشخصات کاربران ویکی هم به عنوان جدول میانی عمل کنه یعنی id شرکت همراه با id کاربری که به اون امتیاز داده و میزان امتیازش درجدول میانی درج بشه

m2148059
سه شنبه 09 شهریور 1389, 13:45 عصر
می شه دلیل هم بیاورید ؟

yosefi_hossein
سه شنبه 09 شهریور 1389, 13:51 عصر
خوب اینجوری خیلی راحت میتونی امتیازهایی رو که هر کاربر به هر گروه داده رو پیدا کنی واز طرفی باعث جلوگیری از افزونگی داده در جداول میشه

raika17metal
سه شنبه 09 شهریور 1389, 14:29 عصر
شما جداول زیر رو نیاز خواهید داشت :
الف) برای شرکتها یک جدول که در آن اطلاعاتی از قبیل کد، نام شرکت و ... ذخیره میشه.
ب) یک جدول به عنوان کاربران که در آن کد کاربر، نام کاربر و ... ذخیره میشه.
ج) یک جدول برای نظرات که فیلد ها زیر را خواهد داشت :
1) کد نظر
2) کد شرکت
3) کد کاربر
4) امتیاز