با سلام.بنده جهت طراحی سامانه مدیریت امور اداری سوال دارم.بنده تو دیتابیس جداول زیر رو دارم.
جدول companies برای نام شرکت هایی که تو سیستم ثبت نام کردن.
table companies:
id
name
جدول subsets برای ایجاد زیرمجموعه های مختلف هست...مثلا ساختمان مرکزی-شعبه و ...
هر شرکت حداقل یه زیرمجموعه داره و ادمین میتوه زیرمجموعه جدیدی رو اضافه کنه به شرکتش
table subsets:
id
name
company_id
جدول users که مربوط به مشخصات کاربرها است.هر کاربر متعلق به یه زیرمجموعه(subset) است
table users:
id
name
subset_id
تو این سامانه هر کاربر دسترسی مختلفی رو داره و جدول permissions هم به این صورت تعریف شده:
table permissions:
id
name
موردی که قراره تو سامانه داشته باشم مربوط به دسترسی کاربر هست.
هر کاربر متعلق به یه زیرمجموعه( subset )هست اما میتونه دسترسی های خاصی به زیرمجموعه های دیگه داشته باشه.
برای توضیح بیشتر یک مثال میزنم:
مثلا یه شرکت 3 مجموعه داره:
subsets:
id:1
name:'مجموعه 1'
company_id:3
,
id:2
name:'مجموعه 2'
company_id:3
,
id:31
name:'مجموعه 3'
company_id:3
جدول permissions هم به صورت زیر باشه:
permissions :
id:1
name:'دسترسی1'
,
id:2
name:'دسترسی2'
,
id:31
name:'دسترسی3'
و کاربر هم به این صورت:
users:
id:1
name:'کاربر1'
subset_id:3
,
id:2
name:'کاربر2'
subset_id:3
,
id:3
name:'کاربر3'
subset_id:3
بنده با توجه به این سیستم یه جدول میانی ایجاد کردم که شامل 3 ستون هست.و دسترسی کاربر رو به زیر مجموعه های مختلف نشون بده:
table permission_user:
user_id
permission_id
subset_id
به نظر شما آیا این روش صحیح است یا من باید دیتابیس رو تغییر بدم؟
از طرفی من نمونه ای از جدول میانی با 3 ستون ندیدم.کسی هست که همیچن موردی رو دیده باشه و لینکش رو به بنده بده؟
دلیل اینکه کسی تا الان جواب نداده این هست که سوال شما خیلی طولانی شده توضیحاتش. میشد کل توضیحاتی که در مورد جدول ها دادین رو توی یه عکس بدین. سه تا جدول بکشید کنار هم بزارید توی یه عکس ساده.
الان من خودم از بالا تا پایین رو خوندم نصفش یادم رفت! البته شاید بقیه افراد اینجوری نباشن.
@khanzadimahdi
به صورت خلاصه میشه گفت جدول میانی که در نظر گرفتم ۳ ستون داره..یعنی ۳ مدل درگیر هستن..میخوام ببینم کسی همچین موردی رو داشته قبلا؟درست هست همچین کاری؟
رابطه اگه یک به چند باشه یک جدول کافیه
ولی اگه چند به چند باشه باید یه جدول میانی داشته باشین یعنی
یک رابطه چند به چند = دو تا رابطه یک به چند + یک جدول میانی برای ارتباط بینشون
رابطه یک به چند (on to many) یعنی
مثلا جدول مقاله و کاربر رو در نظر بگیرین
یعنی هر کاربر چند مقاله داره ولی هر مقاله مربوط به یک کاربر میشه
رابطه چند به چند (many to many) یعنی
مثلا جدول مقاله و دسته بندی
یعنی هر دسته بندی چند مقاله داره و هر مقاله هم متعلق به چند دسته بندی میشه
توی جدول زیر
table permission_user:
user_id
permission_id
subset_id
به نظر من subset_id اضافیه چون شما user_id رو دارین و میتونین از جدول users مقدار subset_id رو بخونین
نظر من اینجوریه البته :)
@elyasbeshkani نه دیگه...درسته هرکاربر متعلق به یه subset هست ولی میتونه در صورت لزوم دسترسی خاصی به subset دیگه ای هم داشته باشه...مشکل همینه
@mohsenmoradi1851
آها پس نسبتا درست دیده میشه اگه افزونگی داده زیادی نداره که همینجوری هم خوبه بازم دوستان حرفه ای مثل @ali.bayat نظر بدن بهتره
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟