[font="Tahoma"][rtl]
البته که نمی شه برای هر چیز کوچیکی یک سطح دسترسی تعریف کرد من هم چنین منظوری نداشتم.اگه سوال شما فیس بوک باشه مسئله به این شکل قابل حله :
در جدول permission گروههای مطالب مشخص می شه و برای هر کاربر یک عدد به عنوان مجوز در نظر گرفته می شه. مثال
[/rtl]
Permission Table
userId[/font][font="Tahoma"]------[/font][font="Tahoma"]Profile[/font][font="Tahoma"]----------[/font][font="Tahoma"]Setting[/font][font="Tahoma"]---------------[/font][font="Tahoma"]Wall----------------Groups----------Causes[/font][font="Tahoma"]------------[/font][font="Tahoma"]Applications
1---------------2[/font][font="Tahoma"]------------------[/font][font="Tahoma"]1---------------------3-----------------------1-------------------0---------------------2
2[/font][font="Tahoma"]---------------[/font][font="Tahoma"]3[/font][font="Tahoma"]------------------[/font][font="Tahoma"]3[/font][font="Tahoma"]---------------------[/font][font="Tahoma"]2[/font][font="Tahoma"]-----------------------[/font][font="Tahoma"]0[/font][font="Tahoma"]-------------------[/font][font="Tahoma"]1[/font][font="Tahoma"]---------------------[/font][font="Tahoma"]2
[rtl]
و شرایط رو اینجوری تعریف می کنیم
[/rtl]
0= deny
1 = view
2=edit/create
3=delete/admin
[rtl]
حالا می بینیم که مثلا کاربر 1 حق دسترسی و مشاهده Causes رو نداره ولی روی wall خودش حق دسترسی نامحدود یعنی 3 است
و به همین ترتیب برای بقیه
در مورد پیامهای سیستم و یا پست ها سطح دسترسی روی خود همون رکورد ذخیره می شه مثلا
[/rtl]
Post Table
id----------title------------------content---------------------status
1----------Hello---------------Hello World-----------------------1
2----------Welcome---------Welcome User-------------------2
[rtl]
که status به شکل زیر تعریف می شه
[/rtl]
Status :
0 = Inactive
1= Just Owner
2 = Just Friends
3 = Public Show
[rtl]
این مقادیر طبیعتا طبق نظر برنامه نویس مشخص می شوند.
اما اگر بخوایم حالت داینامیک کار رو بیشتر کرده باشیم می تونیم جدول permission رو به شکل زیر تعریف کنیم
[/rtl]
Permission Table
id----------userId-----------Permission------Value
1------------1--------------- Application -----3
2[/font][font="Tahoma"]------------1[/font][font="Tahoma"]--------------- [/font][font="Tahoma"]Wall[/font][font="Tahoma"]----------------[/font][font="Tahoma"]1
3[/font][font="Tahoma"]------------1[/font][font="Tahoma"]--------------- [/font][font="Tahoma"]Causes------------2
4[/font][font="Tahoma"]------------2[/font][font="Tahoma"]--------------- [/font][font="Tahoma"]Wall----------------2
5[/font][font="Tahoma"]------------2[/font][font="Tahoma"]--------------- [/font][font="Tahoma"]Groups------------0
[rtl]
مزیت این روش اینه که جدول 1-چند permission اجازه می ده در آینده هر Permission جدیدی اضافه شد بدون تغییر ساختار جداول اونو اضافه کنیم.
[/rtl]
[/font]