PDA

View Full Version : طراحی درست جداول و ارتباط بین انها،لطفا کمکم کنید...



meisam_pro
دوشنبه 14 مرداد 1392, 01:11 صبح
سلام دوستان عزیز امیداوارم طاعات و عبادات تون مورد پسند خدای مدنان قرار گرفته باشه.

من میثم هستم علاقه مند به برنامه نویسی، راستش من تازه عضو سایت شدم قبلا هر سوالی واسم پیش می اومد توسط گوگل به این سایت پاسخشو دریافت می کردم،این بار یه پروژه ای تحت وب دارم میخوام بانکشو با اس کیو ال طراحی کنم ولی تو ارتباط جداول مشکل دارم میخام جداولم باهم در ارتباط باشند مثلا میخوام یک فروشنده بتونه چند کالا را از جدول کالاها بفروشه و هر سوالی که پیش میاد بتونم با دستورات اس کیو ال پیاده سازیش کنم.خواهش می کنم اگه کسی میتونه کمکم کنه ،من زیاد تو اس کیو ال و پایگاه داده مهارت ندارم.

لیست جداولم اینا هستند:
1.جدول cat برای دسته بندی قطعه ها که شامل فیلدهای زیر میباشد:
- فیلد cat_id
-فیلد cat_name
کلید اصلی این چدول cat_id هستش

2.جدول seller برای فروشندگان کالا:
-seller_id
-seller_name
-seller_familly
-seller_phone
-seller_address
-seller_ranking
در این جدول کلید اصلی را seller_id گذاشتم.


3.جدول product که برای مشخصات هر محصول گذاشتم :
-product_id
-product_name
-product_qty
-product_color
-product_details
-cat_id
-selller_id
کلید اصلی این جدول product_id و کلیدهای خارجی آن seller_id از جدول seller و cat_id از جدول cat هستش.

4.آخرین جدولم جدول مشتریان میباشد که اسم جدول customer هست وشامل:
-customer_id
-customer_name
-customer_family
-customer_city
-customer_post
-product_id
-seller_id
که customer_id کلید اصلی ما هستش و فیلدهای product_id و seller_id هم کلیدهای خارجی از جداول product و seller می باشند. بیشتر تو این گیر کردم میخوام یه کالا توسط چند فروشنده فروخته بشه ولی نمیدونم چیکار کنم.

لطفا کمکم کنید میخوام هر سوالی را با اس کیو ال بنویسم بتونه جواب بده.
به عنوان مثال:قادر باشه این سوال ها رو جواب بده:کالاهایی که توسط فروشنده X فروخته میشه

ممنون از کمکتون.منتظرتونم.

meisam_pro
دوشنبه 14 مرداد 1392, 12:14 عصر
دوستان منتظرتونم،لطفا اگه میتونید کمکم کنید،بدجور درگیر این مساله هستم.

بهزاد علی محمدزاده
دوشنبه 14 مرداد 1392, 16:48 عصر
سلام . این مثال معروف رو یه نگاه بنداز (http://northwinddatabase.codeplex.com/) . نگاه خوب بنداز . هر لغت و که نمی دونی ترجمه کن . توی جدول مشتریان کد کالا رو نمیذارن و کد فروش .

برای یادگیری رابطه ها بطور خلاصه : جدول مشتری رو داری . که هر مشتری n تا محصول سفارش میده . و محصول هم به m تا مشتری فروخته میشه . هر جا رابطه m : n داری باید یه جدول واسط براشون در نظر بگیری . که در اینجا Order‌ میشه جدول واسط بین مشتری و کالا . ( در مثال بالا Order Details رو برای این کار در نظر گرفته چون Product یه موجودیتی هست که فقط اطلاعات خودش و نگهداری می کنه . اطلاعات سفارشش باید بره توی Order Details ( میشه این و جزییات فاکتور در نظر گرفت ) )

اونوقت برای رابطه های 1:n . مثل یه Category می تونه n تا محصول داشته باشه . ( البته شاید یه محصول هم جز لوازم آرایش باشه و هم جز بهداشتی ها و این دیگه بستگی به نیاز شما داره و اگر اینجوری شد رابطه n:m ) . کلید سمت 1 رو ببر به جدول سمت n . در مثال بالا کلید CategoryId که سمت 1 هست رفته در جدول Product قرار گرفته که سمت n هست . و توی Product این کلید خارجی تعریف میشه .

meisam_pro
دوشنبه 14 مرداد 1392, 22:55 عصر
ممنون دوست عزیز که کمک کردید میتونید بگید دقیقا چه جدول هایی بسازم میخام مشتری با کالا و مشتری با فروشنده و فروشنده با کالا ارتباط داشته باشه که مشکلی پیش نیاد

بهزاد علی محمدزاده
دوشنبه 14 مرداد 1392, 23:19 عصر
مشتری با فاکتور بهتره ارتباط داشته باشه . , یعنی به جای اینکه بگیم مشتری با کالا , میگیم مشتری با فاکتور , اونوقت هر فاکتور می تونه شامل 1 تا n تا کالا باشه . توی مثال هم هست . Product با Order Details ( جزئیات سفارش ) . و تولید کننده هم Supplier با Product در ارتباط هستند .

توی مثال می تونی اون چیزی که مد نظر هست و برداشت کنی .