بازدید: ٢٢۶١

ایجاد ارتباط چند به چند (آموزش پیشرفته اکسس)

بازگشت به صفحه اصلی آموزش پیشرفته اکسس

در این قسمت به بررسی و ایجاد یک ارتباط چند به چند در بانک اطلاعاتی Customer Orders می پردازیم.

در ارتباط یک به چند،جدولی که در یک سمت از ارتباط قرار دارد، دارای چندین رکورد نظیر در جدول دیگر است. این نوع ارتباط در پنجره Relationships اکسس بصورت زیر نمایش داد:

 

ارتباط چند به چند اکسس پیشرفته

شکل 1: ارتباط یک به چند

 

در مقایسه با ارتباط یک به چند، باید گفت که در ارتباط چند به چند سه جدول وجود دارند. دو جدولی که با هم ارتباط دارند، به یک جدول سوم به نام junction متصل می شوند. این نوع ارتباط در پنجره Relationships اکسس بصورت زیر نمایش داد:

 

ارتباط چند به چند اکسس پیشرفته

شکل 2: ارتباط چند به چند

 

در تصویر فوق، جداول tblOrder و tblProducts در یک ارتباط چند به چند به یکدیگر متصل می باشند. جدول TblOrderDetails سومین جدول است که جدول junction نامیده می شود و بین دو جدول دیگر وساطت می کند. این وساطت دو ارتباط یک به چند را شکل دهی می کند.

هنگامی که یک مشتری سفارش می دهد، این امکان وجود دارد که محصولاتی خریداری شوند. همانند ارتباط یک به چند، در اینجا هم یک سفارش می تواند شامل چندین محصول درخواستی باشد. اگرچه، یک نوع محصول نیز ممکن است در چندین سفارش مختلف ظاهر شود. این داستان نیز همانند یک ارتباط یک به چند است ولی با این تفاوت که در جهت عکس رخ می دهد. بنابراین ما به یک جدول junction در بین دو این جدول نیاز داریم تا هر محصولی که در یک سفارش خاص ظاهر می شود و نیز هر سفارشی که برای یک محصول خاص داده می شود را ثبت کنیم.

اگر به شکل دوم نگاه کنید متوجه می شوید که به نظر می رسد دو کلید اولیه در جدول junction قرار دارد. همچنین کلیدهای خارجی از دو جدول دیگر در ارتباط هستند. اما در حقیقت تنها یک کلید اولیه وجود دارد ولی حاوی ترکیب منحصربفرد دو کلید اولیه از دو جدول در یک ارتباط چند طرفه می باشد. همینطور یک نوع محصول خاص فقط تنها می تواند یکبار در هر جدول مخصوص Customer Order ظاهر شود و برعکس.

برای درک بهتر آن، بهتر است طرح یک فاکتور فروش را تصور کنید. هر فاکتور فروش متعلق به یک سفارش خاص برای همان مشتری است. ممکن است همان نوع محصول در فاکتورهای فروش مختلف نیز سفارش داده شود(برای همان مشتری یا مشتریان دیگر). داده های این فهرستها از جدول junction حاصل می شوند.
  

ایجاد یک ارتباط چند به چند

 

ابتدا یک بانک اطلاعاتی را دانلود می کنیم که حاوی جدول های tblOrder و tblProducts می باشند. همچنین جدول دیگری به نام tblCustomer وجود دارد که با یک ارتباط یک به چند به جدول tblOrder متصل می باشد. سپس ما جدول junction دیگری به نام tblOrderDetails ایجاد کرده و متصل می کنیم تا یک ارتباط چند به چند ایجاد کنیم.

  1. جدولهای مورد استفاده در این مثال را ایجاد کرده و یا از اینجا دانلود کنید.
  2. بانک اطلاعاتی را باز کرده و نوار DATABASETOOLS را انتخاب کنید.
  3. بر روی آیکون RELATIONSHIPS در گروه SHOW/HIDE کلیک کنید.

 

ارتباط چند به چند اکسس پیشرفته

شکل 3: ایجاد ارتباط چند به چند

 

ایجاد جدول Junction

 

  1. برگه Create را از نوار اکسس انتخاب کنید.
  2. بر روی آیکون TABLEDESIGN از گروه TABLES کلیک کنید.
  3. دو فیلد اول موجود در TABLESDESIGN GRID را وارد کنید. این دو فیلد OrderID و ProductId هستند. نوع داده هر دو فیلد را Number انتخاب کنید.
  4. اکنون نیاز است تا هر دو فیلد را بعنوان کلید اولیه اتصال انتخاب کنید. با نگه داشتن کلید CTRL و کلیک بر روی دو قسمت آبی رنگ در سمت چپ جدول، هر دو سطر را انتخاب کنید. اکنون هر دو سطر انتخاب می شوند. بر روی آیکون Primary Key در گروه Tools از نوار DESIGN کلیک کنید. دو نماد کلید اولیه در سمت چپ هردو سطر ظاهر می شود.

 

ارتباط چند به چند اکسس پیشرفته

شکل 4: انتخاب دو فیلد بعنوان کلید اولیه .

 

5. دو فیلد باقیمانده را به جدول اضافه کنید. این دو فیلد Quantity( از نوع داده Number) و CostPerUnitPaid(از نوع داده Currency) هستند.

6. جدول را ببندید و آن را به نام tblOrderDetails ذخیره کنید.

 

ایجاد اتصال

 

  1. برگه DATABASETOOLS را از نوار اکسس انتخاب کنید.
  2. در گروه SHOW/HIDE، بر روی آیکون RELATIONSHIPS  کلیک کنید.
  3. در ابتدا جدول junction ای ما که ایجاد کردیم، دیده نمی شود. برای مشاهده آن بر روی آیکون SHOW TABLE در گروه RELATIONSHIPS نوار اکسس کلیک کنید. در کادرمکالمه SHOWTABLE بر روی tblOrderDEtails دبل کلیک کنید تا آن را به پنجره RELATIONSHIPS اضافه کنید. کادر مکالمه SHOW TABLE را ببندید.
  4. برروی جدول جدید کلیک کرده و آن را بکشید تا بین جداول tblOrder و tblProducts قرار گیرد.
  5. اکنون می خواهیم یک ارتباط یک به چند بین فیلد ID از جدول tblOrder و فیلد OrderId از جدول tblOrderDetails ایجاد کنیم. برای این منظور بر روی فیلد tblOrder.ID کلیک کنید و آن را به سمت tblOrders.orderId بکشید. هنگامی که کلید ماوس را رها می کنید، کادرمکالمه EDIT RELATIONSHIPS باز می شود. هر سه کادر موجود در پایین کادرمکالمه را تیک بزنید و بر روی دکمه CREATE کلیک کنید تا ارتباط ایجاد شود.

 

ارتباط چند به چند اکسس پیشرفته

شکل 5: کادرمکالمه Edit Relationship.

 

6. سپس باید یک ارتباط یک به چند بین فیلد tblProducts.ID و tblOrderDetails.ProductId ایجاد کنیم. مراحل بالا را مجددا برای ایجاد این ارتباط طی کنید.

اکنون ارتباط چند به چند ایجاد شده است. پنجره RELATIONSHIPS شما باید شبیه به شکل زیر به نظر برسد.

 

ارتباط چند به چند اکسس پیشرفته

شکل6: ارتباط چند به چند

 

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

تصویر زیر سفارشی را نشان می دهد که برای یکی از مشتریان در جدول مشتریان ایجاد کرده ایم.

 

ارتباط چند به چند اکسس پیشرفته

شکل7: سه جدول تودرتو که سفارش ثبت شده توسط یک مشتری به نام Tracey Smith را نشان می دهد.

همانطور که مشاهده می کنید سه جدول تودرتو وجود دارد. جدول فوقانی، رکورد مشتری را از جدول tblCustomer نشان می دهد. نام مشتری در اینجا Tracey Smith و مقدار customerId نامبرده 2 است. جدول میانی رکورد سفارش را از جدول tblOrder نشان می دهد. تنها یک سفارش برای این مشتری بر روی بانک اطلاعاتی وجود دارد. شماه ID سفارش 18 است و مقدار OrderDate نیز 2011/4/28  است. جدول انتهایی جزییات سفارش را از جدول tblOrderDetails نشان می دهد. همانطور که مشاهده می کنید، چهار محصول برای این سفارش وجود دارد. شماره ID محصول 3 ، 2 ، 1 و 5 است. مشتری یکی از این آیتمها را سفارش داده است(به فیلد quantity مراجعه کنید).

در شکل 8 جدول محصولات را مشاهده می کنید. هر سطر باز می شود تا مجموعه ای از رکوردهای جدول tblOrderDetails نظیر آنها را نمایش دهد. همینطور می توانید سفارشهایی را که برای هر محصول ارائه می شود، مشاهده کنید:

 

ارتباط چند به چند اکسس پیشرفته

شکل8: جدول Products(tblProducts) جزییات سفارش ( tblOrderDetails) را برای هر آیتم نشان می دهد.

 

همانطور که مشاهده می کنید، Order 18 در اینجا از سمت جدول Product به همراه سایر سفارشات دیده می شود. اگر به دقت نگاه کنید، مشاهده می کنید که یک نمونه از OrderId 18 در زیر هر کدام از ProductId ها ظاهر می شود(مثلا 3 و 2و 1و 5). همچنین می توانید نحوه ظاهر شدن داده های موجود در جداول ما را در هردو سمت ارتباط چند به چند مشاهده کنید.

البته، برای وارد کردن داده ها، پردازش و نمایش نتایج حاصله  باید از فرمها، فرم های پرس و جو (Queryها) و گزارشات استفاده کنیم.

 

بازگشت به صفحه اصلی آموزش پیشرفته اکسس

طراحی سایت و سئو توسط ضابط