PDA

View Full Version : محدودیت تعداد ارتباط در Relationship برای فیلدهای یک جدول



Rasool-GH
دوشنبه 24 شهریور 1393, 11:27 صبح
سلام دوستان
در محیط ریلیشن تعداد زیادی جدول مختلف رو میخوام به یک جدول وصل کنم ولی اجازه برقراری بیش از 16 ارتباط رو نمیده. راه حلی به نظر دوستان میرسه که این مشکل رو برطرف کنم ؟

Rasool-GH
چهارشنبه 26 شهریور 1393, 06:57 صبح
سلام به همگی
دوستان ایا راهی هست که یک جدول رو به چند قسمت تقسیم کنم ( چند جدول وابسته به هم ) که توی هر کدوم یک تعداد فیلد رو داشته باشه و رکوردهای این جداول یک به یک باشه .

Rasool-GH
چهارشنبه 26 شهریور 1393, 07:13 صبح
مطالب خوبی در این سایت هست که پیشنهاد میکنم علاقه مندان مطالعه کنن
http://databases.about.com/cs/tutorials/a/accessgup7.htm


Relational databases support a number of different types of relationships between tables, all designed to enforce the concept of referential integrity (http://databases.about.com/cs/administration/g/refintegrity.htm). Access supports three different types of relationships between tables. For the purposes of our example, we’ll consider two tables: TableA and TableB, where TableA has a foreign key (http://databases.about.com/library/glossary/bldef-foreignkey.htm) to TableB


One-to-one relationships occur when there is exactly one record in TableA that corresponds to exactly one record in TableB.
One-to-many relationships occur when each record in TableA may have many linked records in TableB but each record in TableB may have only one corresponding record in TableA.
Many-to-many relationships occur when each record in TableA may have many linked records in TableB and vice-versa.

Let’s think back to the Patrick’s Widgets scenario and determine the types of relationships necessary for our situation. We’ll need to create the following relationships:

A one-to-many relationship between the CustomerID in the Customers table and the CustomerID in the Orders table. This relationship indicates that each customer may be associated with multiple orders, but each order may only be associated with one customer.
A one-to-many relationship between the OrderID in the Orders table and the OrderID in the OrderedItems table. This relationship indicates that each order may contain multiple items, but each OrderedItem record may only correspond to a single order.
A one-to-many relationship between the ItemID in the Items table and the ItemID in the Ordered Items table. This relationship indicates that each item ordered corresponds to a single inventory record, but each item in inventory may be associated with many orders.

Rasool-GH
چهارشنبه 26 شهریور 1393, 10:11 صبح
سلام
تا این لحظه کلیه مطالعات به این قضیه دلالت دارن که اکسس بیش از 32 ریلشن رو پشتیبانی نمیکنه که برداشت من اینه که 16 ارتباط رو دو طرفه حساب میکنه که میشه 32 ارتباط .
اگر کسی راهی پیدا کرد ممنون میشم اطلاع بده . ضمنا جدول رو تفکیک کردم ولی باز هم مشکل باقیه . ظاهرا اکسس کلیه جداول 1 به 1 رو معادل 1 جدول به حساب میاره .

متاسفانه به نظر میرسه اقای امیری هم دیگه وقت سر زدن به اینجا رو ندارن . کمکهای بسار ارزنده ای ارائه میکردن . خواستم یادی هم از ایشون کرده باشم . البته جای خالی سایرین هم کاملا حس میشه . مثل نبیل عزیز ( اقای پیروز مهر ) . جناب ازادی - اقای قربانی .

Rasool-GH
چهارشنبه 26 شهریور 1393, 10:18 صبح
اینم روزگار منه

123588

Access2013
چهارشنبه 26 شهریور 1393, 13:14 عصر
[QUOTE=Rasool-GH;2104040]اینم روزگار منه

QUOTE]

سلام دوست عزیز

ضمن عرض ارادت خدمت همه اساتید محترم که متاسفانه مشارکت نمی کنند
جداول برنامه هات خیلی پیچیده و در هم هست در ضمن با توجه به برنامه هایی که از جناب امیری دیدم ایشان از روش کد نویسی و فرماهای آنبند کارشان را راه می اندازند ! جناب پیروزمهر بیشتر تکیه اشان به این قضیه بوده و می تونید از تاپیکهایی که به عنوان نرمالسازی ایجاد شده تو همین تالار استفاده کنید

علی ایحال پیشنهاد من استفاده از روش کارخانه صابون سازی ! تو مطالب جناب نبیل هست و پرهیز از پیچیده کردن بی مورد جداول میباشد

همیشه روش پیچیده راه حل مناسبی نیست (http://barnamenevis.org/showthread.php?413205-%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A7%D8%B2-%D9%88%D8%B1%D9%88%D8%AF-%D8%AF%D8%A7%D8%AF%D9%87-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C-%D8%AF%D8%B1-%D8%A7%DA%A9%D8%B3%D8%B3-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D9%BE%DB%8C%D8%BA%D8%A7%D9%85-%D8%AE%D8%B7%D8%A7&p=1849546&viewfull=1#post1849546)

خدا نگهدار

Rasool-GH
پنج شنبه 27 شهریور 1393, 00:33 صبح
ممنون از کمکتون . مباحث نرمال سازی رو خیلی دنبال کردم و خیلی از موارد بیهوده حذف شده . این دیگه خالص ترین حالت برنامه هست . متاسفانه گستردگی ایتمها و محدودیت مدیریت پیوندها مشکل ساز شده .
بنده مطالب زیادی اینجا یاد گرفتم و خدمت اساتید این سایت ارادت دارم . اقای پیروز مهر بسیار مسلط و دارای نثر قوی بودند که متاسفانه از کمک ایشون بی بهره هستیم .
فرمایش شما کاملا صحیح هست . ولی برنامه به اینجا رسیده که ایتمهای کنترلی بسیار زیاد شده و راههای مختلفی برای کاهش اونها استفاده کردم . ولی الان دیگه به بن بست رسیده . این برنامه حدود 3 سال هست که در حال بهبود و گسترشه

Rasool-GH
شنبه 29 شهریور 1393, 09:39 صبح
راه یگه ای به نظرم رسیده . لطفا نظرات وخودتون رو بگید و همچنین معایبی که به ذهنتون میرسه رو عنوان کنین .
یکی از دلایلی که تعداد ریلیشنها زیاد شده اینه که من از ارتباط 1 به چند استفاده کردم که تمام مقادیر رو در جداول همزمان به روز رسانی کنم.
حالا اگه برای این منظور به جای هر ریلیشن یک کوئری اپدیت بنویسم و با هر بار تغییر در ایتمهای جدول اون رو فراخوانی کنم که فیلدهای معادل اون رو در سایر جداول رو اپدیت کنه ظاهرا مشکل حل میشه . ایا این روش منطقیه ؟

Rasool-GH
سه شنبه 01 مهر 1393, 11:36 صبح
این پست دست جناب امیری رو میبوسه . ممنون میشم مثل همیشه از نظرات خوبتون بنده رو بهره مند کنید

m.elmi
پنج شنبه 03 مهر 1393, 16:29 عصر
راه یگه ای به نظرم رسیده . لطفا نظرات وخودتون رو بگید و همچنین معایبی که به ذهنتون میرسه رو عنوان کنین .
یکی از دلایلی که تعداد ریلیشنها زیاد شده اینه که من از ارتباط 1 به چند استفاده کردم که تمام مقادیر رو در جداول همزمان به روز رسانی کنم.
حالا اگه برای این منظور به جای هر ریلیشن یک کوئری اپدیت بنویسم و با هر بار تغییر در ایتمهای جدول اون رو فراخوانی کنم که فیلدهای معادل اون رو در سایر جداول رو اپدیت کنه ظاهرا مشکل حل میشه . ایا این روش منطقیه ؟

بله بنظرم اين ام يه راهشه. ولي در نظر داشته باشين كه Cascade Update كه شما توي Relation استفاده مي كند روي جدول سوار مي شه و خود بخود هر تغيير توي ديتاي جدول رو بسط مي ده به ساير جداول - ولي در اينحالت از يه Event توي فرم استفاده مي كنين و با كد هاي مربوطه. يعني اگه تغيير مستقيما توي جدول اعمال بشه ديگه قابل بسط نيست. ضمنا مي تونين كد رو طوري بنويسين كه آپديت كوئري ها رو مختصر و توي Loop درست كنه و انجام بده.