PDA

View Full Version : جدول سطح دسترسی پویا



H:Shojaei
پنج شنبه 08 مرداد 1394, 13:21 عصر
سلام...
میخوام سطح دسترسی بذارم و بین دو راه موندم...
نحوه سطح دسترسی به این صورته که هر مدیری میتونه یک سطح دسترسی تعریف کنه و کارهایی که میخواد رو توش آزاد کنه...
مثلا ما توی سایت با دسترسی کامل میتونیم ۲۰ کار انجام بدیم و مثلا مدیر یک سطح دسترسی تعریف میکنه که ۱۰ تا از اینها رو شامل میشه و اون رو به یک کاربر تخصیص میده...
حالا سوالم اینه که جدول این ۲۰ کار چطور باشه...
یکی این میشه که یک جدول بذاریم با ۲۱ فیلد یکی نام باشه و باقی کارها که مقدار ۰ و ۱ میگیرن... و وقتی مدیر کارها رو انتخاب میکنه اونهایی که انتخاب شده ۱ و باقیه ۰ بشن و یکی دیگه هم این که یک جدول نام سطح دسترسی داشته باشیم و یک جدول هم برای کارهای که به این سطح دسترسی تعلق دارن و با هم در ارتباط باشن وقتی مدیر کارها رو انتخاب میکنه اونهایی که انتخاب شده توی این جدول کارها درح بشه اگر انتخاب نشده بود هم درج نشه... که مثلا هر کاری که توی این جدول درج شد اون برای اون سطح دسترسی که آی دیشو داره آزاد میشه و اگر کاری هم درج نشد که توی اون سطح دسترسی این کار تعریف نشده...

2undercover
پنج شنبه 08 مرداد 1394, 17:47 عصر
یک روش دیگه که انعطاف پذیرتر و توسعه پذیرتر برای آینده هست اینه که یک جدول داشته باشید که اجازه ها توش مشخص میشن؛ مثلا به این شکل:
permission_id
permission_name

بعد یک جدول داشته باشید که یک سطح دسترسی یک گروه رو بر اساس اون جدول قبلی مشخص می کنه؛ مثلا به این شکل:
role_id
role_name
و باقی فیلد های جانبی که در نظر دارید.

یک جدول هم به عنوان واسطه این دو جدول برای ارتباط:
id
role_id
permission_id

و در نهایت هم در جدول کاربران سایت یک فیلد اضافه می کنید به اسم role_id که مشخص کننده سطح دسترسی کاربر هست.

Mohammadsgh
پنج شنبه 08 مرداد 1394, 19:50 عصر
این روش,روش خیلی خوبیه و از دید من یکی از بهترین روش هاست.از همین روش که دوست خوبمون گفتن استفاده کنید

H:Shojaei
پنج شنبه 08 مرداد 1394, 21:18 عصر
یک روش دیگه که انعطاف پذیرتر و توسعه پذیرتر برای آینده هست اینه که یک جدول داشته باشید که اجازه ها توش مشخص میشن؛ مثلا به این شکل:
permission_id
permission_name

بعد یک جدول داشته باشید که یک سطح دسترسی یک گروه رو بر اساس اون جدول قبلی مشخص می کنه؛ مثلا به این شکل:
role_id
role_name
و باقی فیلد های جانبی که در نظر دارید.

یک جدول هم به عنوان واسطه این دو جدول برای ارتباط:
id
role_id
permission_id
و در نهایت هم در جدول کاربران سایت یک فیلد اضافه می کنید به اسم role_id که مشخص کننده سطح دسترسی کاربر هست.
خوب این که گفتید همین روش دومی هست که خودم گفتم دیگه و به نظر میرسه که بهترین روش واسه پیشبینی آینده هم هست... ولی درد سر پیاده سازی و استفاده زیادی داره و همچنین تعداد رکوردی که درج میشه به ازای هر سطح دسترسی توی جدول ارتباطات زیاده مثلا اگر بیایم یک جدول داشته باشیم به این صورت که یک فیلد نام سطح دسترسی باشه و باقی فیلد ها مربوط به کارها و هر وقت کاری به این سطح میخواد تخصیص داده بشه مقدار فیلد مربوط به اون کار ۱ میشه اینجا یک جدول فقط داریم و تمام...
ولی حالا فرض کنید یک جدول سطح دسترسی داشته باشیم یکی دیگه هم کاری که قرار سطح دسترسی واسش تعریف بشه و یک جدول ارتباط این دو و اگر موردی باشه که همه کارها قرار باشه واسه یک سطح دسترسی اجازه داده بشه باید ۲۰ رکورد توی جدول ارتباطات ثبت بشه و فک کنید هر سطح دسترسی که تعریف میشه میانگین ۱۰ رکورد داشته باشه و این هم هست که این ۳ جدول باید با هم جوین بشن درسته موارد سطح دسترسی شاید به ده هزار هم نرسه ولی بازم باید درست انجام بشه...