مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

ali

عضویت از 1392/03/25

ارتباط چند به چند جدول واسط با خودش

  • جمعه 12 آبان 1396
  • 18:41
تشکر میکنم

با سلام

ممنون میشم با این توضیحات می دم من رو در مدلسازی راهنمایی کنید : (از نام مدل ها به صورت فرضی استفاده شده)

1- جدول User

2- جدول Role

3- جدول User با Role ارتباط چند به چند باید داشته باشند ( هر کاربر دارای چندین نقش و هر نقش هم چندین کاربر داره)

4- کاربری که نقش بهش تعلق گرفت می تونه به عنوان Parent یک کاربر دیگه که بهش نقش داده شده، باشه (یعنی جدول join با خودش ارتباط چند به چند داره)

5- در ضمن Parent می تونه تغییر پیدا کنه در این صورت من فقط در جدول رابط می تونم  رکورد جدید رو حفظ کنم ، چون که RoleId و UserId در این جدول که ارتباط چند به چند رو بین جداول Role و User ایجاد می کنه کلید خواهند بود.

برای درک بهتر مثال هایی رو ذکر می کنم.

کاربر اول ==> user1  با userId=1 -- کاربر دوم ==> user2 با userId=2 -- کاربر سوم==> user3 با userId=3

نقش اول==> role1  با roleId=1 -- نقش دوم ==> role2 با roleId=2 -- نقش سوم==> role3 با roleId=3

حالا فرض کنید user1 با نقش role1 والد یا parent  کاربر user2 با نقش role2 باشه و مشابه این داستان موردهای دیگه هم میتونه اتفاق بیفته که نشون جدول واسط با خودش ارتباط چند به چند داره

سوای اینها من نیاز دارم که اگه parent که کاربر همراه نقشش عوض شد ، همچنان اطلاعات قبلی رو در جدول داشته باشم که به علت کلید بودن RoleId و UserId ممکن نیست.

چطوری می تونم این مدل رو پیاده سازی کنم؟

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • جمعه 12 آبان 1396
  • 18:44

این مدل رو میخوای برروی EF Code First پیاده کنید ؟ 

کاربر سایت

ali

عضویت از 1392/03/25

  • جمعه 12 آبان 1396
  • 19:14

بله

یکبار پیاده کردم 80% پروژه هم پیش رفته بود که هنگامی که خواستم سوابق رو در جدول واسط User و Role داشته باشم به مشکل خوردم

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • جمعه 12 آبان 1396
  • 19:29

این رابطه در EF Code First توسط Fluent API صورت میگیرد، و جدول واسط مورد نیاز به صورت خودکار توسط EF ایجاد می شود:

Configure Many-to-Many Relationship in Code First

c# - How to configure many to many relationship using entity framework fluent API - Stack Overflow

کاربر سایت

ali

عضویت از 1392/03/25

  • جمعه 12 آبان 1396
  • 19:50
مشکل من این نیست که چطوری اون جدولی که رابطه چند به چند را توسط کد ایجاد می کنه بسازم، مشکل اینجاست که اون جدول با خودش رابطه چند به چند داره، این رو می خوام حل کنم
کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • شنبه 13 آبان 1396
  • 14:03

دوست عزیز شما یک جدول بسازید بفرض: 

با نام Groups

یک جدول بسازید با نام Users

حالا یک جدول بسازید با نام Rols که دوتا فیلد داشته باشه - UserID - GroupID

حالا ارتباط چند به چند رو ثبت کنید برید جلو.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

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

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)