PDA

View Full Version : سوال: Relation بین جداول در بانک اطلاعاتی access



نیکناز
شنبه 16 بهمن 1389, 08:30 صبح
سلا م . من از بانک اطلاعاتی access استفاده می کنم. تا حالا تو بانکم از جداولی که با هم relation دارند استفاده نکردم.
و بلدم نیستم چه جوری relation می سازند.
می شه یک sampel بگذارید.
واقعا" لطف می کنید:لبخندساده:

shahab2025
شنبه 16 بهمن 1389, 12:21 عصر
سلام
چه مشکلی هست ؟
قضیه خیلی ساده تر از اینه که بخواهیم تعریفش کنیم .
تو با منطق (چگونگی ) آن مشکل داری یا بلد نیستی روش کار را جهت پیاده سازی انجام بدی؟

نیکناز
شنبه 16 بهمن 1389, 17:39 عصر
ببينيد من يه كمبو باكس رو فرم مربوت به دفترجه تلفنم دارم كه اسمش " كروه" هست 0 توش (دوستان اقوام همكاران000 ) رو وارد كردم 0 حالا اكه كاربر بياد يه مخاتب جديد وارد كنه و
اذ تو كمبو مثلا" كروه "دوستان " را انتخاب كنه بس من بايد يه جدول با نام "كروه" داشته باشم كه با جدول Phone ارتبات داشته باشه ديكه هان؟ تحليلم درسته ؟

هم نمي دونم تحليلم درسته هم نمي دونم جه جوري مي شه relation ساخت

ببخشيد كي بورد من مشكل داره

shahab2025
شنبه 16 بهمن 1389, 18:05 عصر
تحلیلت درسته
یک جدول بزار و یک id بزار و یک نام
اطلاعات کمبو باکس را از نام این جدول پر کن و اگر کاربر یکی از این نامها را انتخاب کرد تو در جدول اصلیت شماره ID را ذخیره کن
---------------
در اکسس 2007 ما در قسمت انتهایی یک لینک مستقیم بابت ساخت و ارتباطات relation داریم
به این صورت که دو تا جدول را اضافه میکنی و سپس مثلا از فیلد اول جدول اول موس را درگ میکنی به فیلد n ام جدول دوم .

reza_edu
شنبه 16 بهمن 1389, 23:02 عصر
همچین هم لازم نیست که ریلیشن بزاری چه کاریه تو یه جدول اطلاعات کمبوباکس رو ذخیره کن حالا هر وقت برنامه لود میشه اطلاعات اون ستون از جدول رو بریز تو ایتم های کمبوباکست و هر وقت خاصتی ذخیره کنی مقدار تکس سلکت شده رو ذخیره کن تو جستجو هم هیچ مشکلی پیش نمیاد و ویرایش هم همین طور آدم که نباید لقمه رو دور سر خودش بچرخونه و بعد بخوره ! یک مورد بگید تا من متوجه بشم که این روش غلط هست تا منم پاسخ رو بدم اگه کسی میگه غلط هست.

shahab2025
یک شنبه 17 بهمن 1389, 13:24 عصر
همچین هم لازم نیست که ریلیشن بزاری چه کاریه تو یه جدول اطلاعات کمبوباکس رو ذخیره کن حالا هر وقت برنامه لود میشه اطلاعات اون ستون از جدول رو بریز تو ایتم های کمبوباکست و هر وقت خاصتی ذخیره کنی مقدار تکس سلکت شده رو ذخیره کن تو جستجو هم هیچ مشکلی پیش نمیاد و ویرایش هم همین طور آدم که نباید لقمه رو دور سر خودش بچرخونه و بعد بخوره ! یک مورد بگید تا من متوجه بشم که این روش غلط هست تا منم پاسخ رو بدم اگه کسی میگه غلط هست.

دوست من سلام
روشی که گفتید اگر چه ساده تر و قابل فهم تر است ولی در طراحی دیتابیس با اصول نرمال سازی بانک اطلاعاتی مغایرت دارد
البته اگر این مساله برای برنامه نویس مهم نیست میتونه از روش پیشنهادی شما استفاده کنه

reza_edu
یک شنبه 17 بهمن 1389, 19:35 عصر
با اصول نرمال سازی بانک اطلاعاتی مغایرت دارد حرف حساب جواب نداره.

Hossis
دوشنبه 18 بهمن 1389, 00:25 صبح
ظاهرا سوال کننده، می خواستند از طریق کد نویسی این مسئله رو حل کنند و گرنه کار با اکسس که خیلی راحته
از این که گفتند sample بذارید یعنی یک سورسی که با کد نویسی این ارتباط بین جداول رو ایجاد کنه
اما این که فرمودید نیازی به ریلیشن نیست، این گونه هم نیست چون در حذف جدول، نیاز پیدا می کنیم که ارتباط ببین دو دیتابیس برقرار باشد تا در صورت حذف یک رکورد از جدول اول، رکوردهای مرتبط با اون در جدول دوم به طور خودکار حذف شوند.

reza_edu
سه شنبه 19 بهمن 1389, 01:55 صبح
سلام مسئله اینجاست اگه نخواد حذف بشه چی؟ من یه همچین مشکلی دارم .

shahab2025
سه شنبه 19 بهمن 1389, 08:35 صبح
سلام مسئله اینجاست اگه نخواد حذف بشه چی؟ من یه همچین مشکلی دارم .
سلام
یعنی اطلاعات شما فقط اضافه میشه و حذف نمیشه ؟؟؟:متفکر:
میشه یه کم بیشتر توضیح بدین.

Hossis
سه شنبه 19 بهمن 1389, 14:53 عصر
سلام مسئله اینجاست اگه نخواد حذف بشه چی؟ من یه همچین مشکلی دارم .

خوب یکی از گزینه ها توی اکسس اینه که ارتباط در چه حد باشه ؟ و آیا شامل حذف و آپدیت همه بشه یا نه؟ اونجا میشه این گزینه رو انتخاب کرد.

reza_edu
چهارشنبه 20 بهمن 1389, 02:21 صبح
سلام این که میگم سفارش مشتری هر چی هم بهش گفتم گفت به تو ربطی نداره من این جوری میخوام باشه به استاد دانشگاه مون هم گفتم گفت وقتی خودش قبول میکنه تو دیگه این وسط هیچ کاره ای (باید بگی چشب مینویسم) حالا چی گفته بود از من این رو خواسته بود که یک سری اطلاعات از اشخاص رو براش بتونم تو دیتابیس ذخیره کنم تا بتونه مدیریت کنه(جستجو -گزارش گیری- حذف اضافه-ویرایش)اما 1. هرئقت خواست بتونه موردی رو به موارد اضافه کنه (یعنی یه ستون به دیتابیسش اضافه کنه) 2. یکسری اطلاعاتش متغیر باشه یعنی چی فرض کن اطلاعات یک نفر را داری توجدول پر میکنی تو این اطلاعات خدمت سربازی هست این فیلد باید یه کمبو باکس باشه که خود کاربر بتونه مقدارش رو اضافه یا کم کنه مثلا امروز این گزینه هارو داره "معاف-مشمول" فردا بزاره "معاف-فراری-نرفته" حالا شما بگید با چه روشی انتخاب میکنید ؟ اون "مشمول"این وسط چی بسرش باید بیاد مشکله دیکه اگه ریلیشن بزاری چه جوری مشموله رو حذف کنی! منکه حقیقت گفتم تقسیر خودشه به منچه ولش کردم حذفم نکردم همونجوری رها کردم برا خودش اون وسط باشه.

shahab2025
چهارشنبه 20 بهمن 1389, 10:35 صبح
سلام
میتونی یک فیلد اضافه کنی به نام Deleted که اگر صفر بود اطلاعات آن رکورد دیده شود و اگر یک بود فرض شود که اطلاعات پاک شده و دیده نشود
با این کار اگر یه روزی خواستی اطلاعات پاک شده را هم بیاوری کاملاً آسان است (در حد صفر کردن یک فیلد)

reza_edu
چهارشنبه 20 بهمن 1389, 22:20 عصر
خوب این کمبو باکس ها 15 تا هست اگه بخوام بصورتی که شما میگید عمل کنم باید برای هر کمبو باکس یه جدول درست کنم و یا اینکه کنار هر ستون یه ستون اضافه کنم که حالت نمایش اون سطر رو نشون بده بنظر شما این کار منطقی میاد؟

shahab2025
پنج شنبه 21 بهمن 1389, 10:36 صبح
خوب این کمبو باکس ها 15 تا هست اگه بخوام بصورتی که شما میگید عمل کنم باید برای هر کمبو باکس یه جدول درست کنم و یا اینکه کنار هر ستون یه ستون اضافه کنم که حالت نمایش اون سطر رو نشون بده بنظر شما این کار منطقی میاد؟

سلام
اگر بخواهی کار به درستی انجام بشه باید چند فیلد یا جدول کنترلی داشته باشی ولی ریز کار زیاد مهم نیست که چگونه باشه
میتونی یک جدول داشته باشی که در اون به ترتیب نام کمبوباکس - اطلاعات کمبوباکس - وضعیت نمایش داشته باشه یا اگر بخواهی نرمال سازی را بیشتر کنی یک جدول که فقط اطلاعات کمبوباکس را دارد و وضعیت نمایش (deleted) و در تعاریف برنامه به کمبوباکسها شماره بدی که از روی آن بفهمی به کدوم فیلد این جدول مربوط است

اگر گنگ گفتم بگو که بیشتر توضیح بدم - توضیح مسائل نرمال سازی اندکی سخت است

نیکناز
سه شنبه 26 بهمن 1389, 23:05 عصر
سلام ممنون او لطفتون:لبخندساده: