ورود

نسخه کامل مشاهده نسخه کامل : سئوال در مورد Join بین دو جدول



M-B-M
26-07-2008, 18:07
سلام
یک سئوال داشتم

من دو جدول دارم
جدول Customer شامل فیلد های Id, Fname, Lname, Tel, Pid, ...
جدول Payment شامل فیلد های Id, Price
زمانی که کاربر وارد فرم ثبت مشتری می شود یک ComboBox حاوی رکوردهای موجود در جدول Payment (فیلد Price) وجود دارد که کاربر یکی از گزینه های آن را انتخاب می کند و در جدول Customer ، Id این رکود ثبت می شود
سئوال:
1. برای نمایش لیست مشتری های ثبت شده (ارتباط بین دوجدول با دستورJoin) بهتر است از DataTable استفاده کنم یا DataReader؟ (اگر از dataReder استفاده کنم باید بطور دستی Header فیلد ها را عوض کنم در حالی که با DataTable احتیاجی به این عوض کردن Header بصورت دستی ندارم)
2. با توجه به اینکه من در جدول Customer ، Id رکورد انتخاب شده را ثبت می کنم و با دستور Join عنوان آن را برمیگردانم؛ اگر از جدول Payment این رکورد حذف شود برای بازیابی اطلاعات این مشتری چکار باید بکنم (مقدار فیلد Id که در حدول Customer وارد شده است در جدول Payment وجود ندارد)
ممنون

Bracket
28-07-2008, 15:13
مگه جدول Customer با Payment رابطه نداره نمیشه باید رابطه داشته باشه قائدتا رابطه one to many اگر قیمت ها یا Payment ها برای برای هر مشتری یکیه اگر هر Payment میتونه برای چند مشتری باشه و بلعکس رابطه many to many که براساس این رابطه Join میکنی جدوال رو .

M-B-M
28-07-2008, 22:32
مگه جدول Customer با Payment رابطه نداره نمیشه باید رابطه داشته باشه قائدتا رابطه one to many اگر قیمت ها یا Payment ها برای برای هر مشتری یکیه اگر هر Payment میتونه برای چند مشتری باشه و بلعکس رابطه many to many که براساس این رابطه Join میکنی جدوال رو .

سلام دوست عزیز
من توی همین ارتباط بین دو جدول مشکل دارم؟
طریقه تعریف ارتباط بین دو جدول توی Sql و طریق پیاده سازی این ارتباط توی C# و طریقه ذخیره آن در دیتابیس(نوع فیلد و ...)

Bracket
28-07-2008, 23:46
سلام دوست عزیز
من توی همین ارتباط بین دو جدول مشکل دارم؟
طریقه تعریف ارتباط بین دو جدول توی Sql و طریق پیاده سازی این ارتباط توی C# و طریقه ذخیره آن در دیتابیس(نوع فیلد و ...)
طراحی Database خودش یه مبحث جدایه و ربطی به برنامه نوسی نداره خیلی و مبحث بزرگی هم هست نرمال سازی یا UML یا eer... و نحوه استفاده از SqlServer و ... که البته اکثرا هم بلد نیستن یا چیزهای خیلی سطحی از اینا مدونن و دیتا بیسها رو همنطوری 4 تا جدول میچینن کنار هم و بهم وصل میکنن که البته تو پرفرمنس و حجم تاثیر مستقیم داره اینطور طراحی . ولی برای اینکه تا حدودی کارت راه بیفته تو DB Diagram باید دو تا جدول رو بهم متصل البته اول باید ببنی چه رابطه دارن یعنی اگر هر مشتری چند پرداخت مشخص داره رابطه One to Many هست که باید یعنی باید یه کلید از جدول پرداخت بزاری تو جدول مشتری تا بشه بینشون رابطه ایجاد کرد Join شون هم کاری نداره بایه Inner Join راحت میشه Join شون کرد که خیلی سادست ولی اگر نه هر مشتری چند پرداخت داشت و هر پرداختم ممکن بود چند مشتری داشته باشه رابطه Many to Many میشه که باید از یک Table واسط استفاده کنی یعنی یه کلید از مشتری بزاری تو یه Table یه کلیدم از پرداخت ها و یکمی Join فرق میکنه که البته اونم خیلی سادست .