تالار گفتمان مانشت
ارتباطات در اکسس - نسخه‌ی قابل چاپ

صفحه‌ها: ۱ ۲
ارتباطات در اکسس - jafar.sh - 02 خرداد ۱۳۹۱ ۰۶:۰۸ ب.ظ

با سلام بر دوستان
جند تا سئوال داشتم لطفا راهنمایی کنید!
میخواستم بدونم چرا(طبق عکس پایین) empid ها با هم ارتباط یک به چند شدند!!!! چرا یک به یک نشدند!!! چطور باید تشخیص داد ارتباط ها را؟؟؟
لطفا راهنمایی کنید؟؟؟
سپاس
[تصویر:  attachment.php?attachmentid=79812&d=1325054368]

ارتباطات در اکسس - hamidkhl - 02 خرداد ۱۳۹۱ ۰۸:۴۳ ب.ظ

عکستون دیده نمیشه!

RE: ارتباطات در اکسس - jafar.sh - 02 خرداد ۱۳۹۱ ۰۸:۵۱ ب.ظ

[تصویر:  90628_1_1379092501.jpg]

کسی نمیدونه!!!

RE: ارتباطات در اکسس - hamidkhl - 03 خرداد ۱۳۹۱ ۱۱:۳۶ ق.ظ

برای اینکه یک ارتباط یک به یک داشته باشید، باید فیلد هر دو طرف رابطه کلید ( یا Unique) باشن

دقت کنید ببینید ارتباطتونو درست برقرار کردید یا نه،

برای مثال من ۲ آیدی که کلید هستنو به هم وصل کردم و ارتباط یک یه یک ایجاد شد

[تصویر:  232323232%7Ffp63563%3Enu%3D73%3B4%3E%3A%...8347nu0mrj]

RE: ارتباطات در اکسس - jafar.sh - 03 خرداد ۱۳۹۱ ۰۱:۲۱ ب.ظ

متشکر: ولی منظور من این بود که چطور باید تشخیص بدهیم که ارتباط بین دو جدول یک به چند و.... میشه!!!
مثلا ایا در تصویر زیر ایا ارتباطات را درست انجام دادم!!!؟؟
مثلا code با code ایا ارتباطش یک به یک میشه!!!؟؟
لطفا راهنمایی کنید؟؟
سپاس
[تصویر:  90896_1_1379092501.jpg]

ارتباطات در اکسس - hamidkhl - 03 خرداد ۱۳۹۱ ۰۱:۵۱ ب.ظ

این دیگه بر میگرده به نوع طراحیتون، مثلاً در یک سیستم برای اشخاص فقط یک شماره تلفن ثبت میشه ولی تو یه سیتم دیگه چندین شماره تلفن

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

در مورد code با code من متوجه نمی شم جدول mashmasool چی هستش!

اگه این عکس دیتا بیسی هست که خودتون طراحی کردین باید بگم اشکالات خیلی زیادی داره، اگه لازمه یه سری اصول طراحی را براتون توضیح بدم

ارتباطات در اکسس - jafar.sh - 03 خرداد ۱۳۹۱ ۰۲:۰۰ ب.ظ

با سلام و تشکر از شما دوست عزیز
این بانک اطلاعاتی برای پروژه ام هست که باید به وی بی۶ وصل بشه و ازش اطلاعات بگیره!!

نقل قول: در مورد code با code من متوجه نمی شم جدول mashmasool چی هستش!
اسم جدول: مشخصات مسئول کتابخانه هست: که مخفف به کار بردم !!

من زیاد از اکسس سر در نمی اورم: خوشحال میشم من را راهنمایی فرمایید: تشکر فراوان
این هم لینک اکسس:
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


ارتباطات در اکسس - hamidkhl - 03 خرداد ۱۳۹۱ ۰۳:۴۶ ب.ظ

من با اکسس زیاد کار نکردم ولی اصول کلی در اکسس یا SQL یا هر پایگاه داده دیگه ای فرق چندانی نداره

به اصول زیر توجه کنید:

- تشخیص صحیح موجودیت ها: باید ببینید در دنیای هدفتون چه موجودیت هایی وجود داره، اون موجودیت ها در نهایت تبدیل به جداول شما می شن، برای مثال برای پروژه شما که به نظر مدیریت یه کتابخانه می رسه موجودیت های اصلی کتاب، اشخاص(چه اعضا و چه کارکنان) هستش، ایجاد جداولی جداگانه برای کتاب معنی نداره (ثبت کتاب جدید و کتاب برگشتی)

-تشخیص روابط میان موجودیت ها: تو پروژه تون باید ببینید چه کارهایی قراره انجام بشه، برای مثال اعضا کتاب به امانت می برن، پس یه رابطه بین کتاب و اعضا وجود داره

تشخیص کلید اصلی: برای هر جدول یک کلید لصلی تعیین کنید، با توجه به سیستمی که طراحی می کنید کلید ها را تعیین کنید، مثلاً برای اعضا شماره عضویت در نظر بگیرید و اونو به عنوان کلید اصلی استفاده کنید، برای کتاب ها ه همینطور یک کلید اصلی طراحی کنید

تشخیص نوع رابطه: اینکه رابطه چند به چند هستش، سه نوع رابطه داریم، ۱-۱, n-1 و n-n

۱-۱: در این رابطه هر موجودیت فقط و فقط میتونه با یک نمونه از موجودیت دیگه در ارتباط باشه، معمولاً رابطه یک یه یک خیلی کم استفاده میشه، برای مثال اگر برای اشخاص پرونده در نظر گرفته بشه هر شخص یک پرنده داره و هر پرونده متعلق یه یک شخص خاصه
برای ایجاد این رابطه فیلد هر دو طرف رابطه باید کلید اصلی یا unique باشن

N-1: در این رابطه هر نمونه از یک موجودیت میتونه با چندین نمونه از موجودیت دیگه در ارتباط باشه، برای مثال یک نفر می تونه چندین کتاب به کتابخانه اهداء
برای ایجاد این رابطه فیلد طرف یکی رابطه باید کلید اصلی یا unique باشه و فیلد (کلید خارجی)طرف چندی نباید!

n-n: در SQL ، اکسس و خیلی از DBMS ها این رابطه پشتیبانی نمیشه و باید با دو رابطه N-1 اونو ساخت
برای مثال یک کتاب توسط چندین نفر(در تاریخ های مختلف) به امانت میره، و یک نفر میتونه جندین کتاب به امانت ببره
برای ایجاد این رابطه باید یک جدول(Junction) ساخته بشه که حاوی کلیدهای اصلی دو جدول دیگه باشه

تعیین کلید خارجی: وقتی یک رابطه N-1 داریم باید تو جدول چندی رابطه یه کلید خارجی تعریف بشه دقیقاً از همون نوع کلید اصلی و کلید اصلی را به کلید خارجی ارتباط بدین

جند نکته در مورد نامگذاری:

در نامگذاری جداول و فیلدها از روش CamelCase استفاده کنید، کلمات را پشت سر هم بنویسید حروف اول هرکلمه معنی دار را با حروف بزرک بنویسد
از کلمات کوتاه مختصر ولی در عین حال گویا برای فیلدها و جداول استفاده کنید
در مورد نامگذاری کلید های خارجی به این صورت عمل کنید: فرض کنید یک جدول به نام Person با کلید اصلی Id و جدولی دیگه با نام Ehda دارین، کلید خارجی ای که در جدول اهدا قرار می گیره به این صورت باشه: Person_Id در این صورت به راحتی میفهمید چه فیلدی باید به چه فیلد دیگه ای وصل بشه

این اصول کلی که گفتمو رعایت کنید، اگه بازم مشکلی دارین بگین

ارتباطات در اکسس - jafar.sh - 03 خرداد ۱۳۹۱ ۰۴:۰۴ ب.ظ

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

سپاس

RE: ارتباطات در اکسس - hamidkhl - 03 خرداد ۱۳۹۱ ۰۵:۰۸ ب.ظ

(۰۳ خرداد ۱۳۹۱ ۰۴:۰۴ ب.ظ)jafar.sh نوشته شده توسط:  متشکر دوست عزیز: لطفا مشکلات پایگاه داده ای که من طراحی کردم را بگید و اینکه ایا میشه در یک جدول طبق عکس بالا مثلا ۵ کلید اصلی تعیین کرد و ان را به جدول دیگه ای ارتباط داد؟؟؟؟ من این کار را کردم ولی ارور میده!!!! ایا این کار اصولی هست!!!! و اینکه من عاقبت نفهمیدم که چطور باید در ارتباط دو جدول : ارتباطاتش را تشخیص داد!!!طبق عکس بالا: ایا ارتباطات یک به چتدی که دادم درست هست!!!؟؟؟

سپاس

مشکل پایگاه داده شما بیشتر با مواردی که تو پست قبلی گفتم حل میشه

مثلاً برای کتاب فقط یک کتاب کافیه و جداولی مثل ثبت کتاب، کتاب برگشتی به نظرم درست نیست، کتابها در جدول کتاب ذخیره میشن ( نمیدونم منظورتون در مورد کتاب برگشتی چیه)

هر جدول فقط یک کلید اصلی می تونه داشته باشه، میتونید فیلد هایی با خاصیتUnique ایجاد کنید به این معنی که این فیلد اجازه تکرار مقدار ندارد، مثلاً اگه فیلد Name را Unique کنید به این معنیه که هیج دو اسم مشابهی نمیتونن تو جدول ذخیره بشن

برای ارتباط با جداول دیگه همانطور که تو پست قبلی در مورد نوع ارتباط ها گفتم باید از کلید خارجی استفاده کنید(به جز ۱-۱)

در مورد تشخیص اینکه رابطه تون چند به جند باشه باید تحلیل کنید، مثلاً میگید تو سیستمی که من طراحی می کنم هر شخص میتونه چندین کتاب قرض کنه و یک کتاب هم توسط چندین نفر به امانت برده میشه پس این ارتباط n-n هستش
در مورد بقیه روابط هم همینطور

ارتباطات در اکسس - jafar.sh - 03 خرداد ۱۳۹۱ ۰۶:۵۶ ب.ظ

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

راستی یک پایگاه داده دیگه برای univercity_register درست کردم با sql server : ممنون میشم اگه عیب هاش را به من بگیدHeart
[تصویر:  91000_1_1379092501.jpg]

سپاس

RE: ارتباطات در اکسس - jafar.sh - 03 خرداد ۱۳۹۱ ۱۰:۰۸ ب.ظ

نقل قول: پس من اگه توی جداول ثبت کتاب جدید و اهدا و امانت اگر به فیلد های نام ونام خانوادگی خاصیت Unique بدم: به جای ارتباط مشکلم حل میشه!!!؟؟؟
Huh

RE: ارتباطات در اکسس - hamidkhl - 03 خرداد ۱۳۹۱ ۱۰:۱۰ ب.ظ

(۰۳ خرداد ۱۳۹۱ ۰۶:۵۶ ب.ظ)jafar.sh نوشته شده توسط:  متشکر دوست عزیز: پس من اگه توی جداول ثبت کتاب جدید و اهدا و امانت اگر به فیلد های نام ونام خانوادگی خاصیت Unique بدم: به جای ارتباط مشکلم حل میشه!!!؟؟؟
و اینکه این Unique کلا به درد چی میخوره؟؟؟ ایا به جای ارتباطات میشه ازش استفاده کرد!!؟؟؟ یا فقط به درد عدم تکرار فیلد میخوره؟؟

راستی یک پایگاه داده دیگه برای univercity_register درست کردم با sql server : ممنون میشم اگه عیب هاش را به من بگیدHeart

سپاس

unique کردن فیلد ها به تنهایی ربطی به ارتباط بین جداول نداره، اگه شما برای مثال فیلد نام را Unique کنید نمیتونید دونفر با اسم "علی" را در جداولتون ذخیره کنید

برای درک بهتر مفاهیم طراحی پایگاه داده ها پیشنهاد می کنم یکی از کتب مرجع مثل کتاب استاد رانکوهی را مطالعه کنید

در مورد این پایگاه داده باید بگم موجودیت ها به خوبی تشخیص داده شدن ولی ارتباط بین جداول برای من کمی گنگه!
غلط نیستا! میتونست بهتر از اینا باشه!

ارتباطات در اکسس - jafar.sh - 03 خرداد ۱۳۹۱ ۱۰:۲۶ ب.ظ

تشکر: یعنی من ایا باید فیلد های نام و نام خانوادگی (در تمام جداول)را طبق عکس بالا باهم ارتباط بدم یا unique کنم اش!!! راستی unique کردن ایا همون index کردن هست؟؟؟

تشکر

ارتباطات در اکسس - hamidkhl - 04 خرداد ۱۳۹۱ ۱۲:۴۳ ق.ظ

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