PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : جدول هاي ديتابيس



texas
September 27th, 2010, 01:48
سلام
دوستان ميخواهم يك اسكريپت بنويسم
براي بخش ثبت نام سه نوع كاربر دارم
مدير,كاربر معمولي(مشتري),كاربري كه سفارش مشتري ها رو دريافت ميكنه
حالا اينجا ميخواهم بتونم به يك سري از كاربران هم يك سري دسترسي هاي مديريت بدم مثل ناظم و ...
به نظر شما جداول رو چطوري درست كنم
يك جدول براي همه ؟
دو جدول يكي براي كاربران يكي هم براي مديران ؟
چون ميخواهم بعدش توي ارتقا برنامه به مشكل خاصي بر نخورم
به نظر شما ساده ترين كار كدام هستش ؟

S4n470n
September 27th, 2010, 02:06
می تونی یه جدول برای کاربران بسازی یعنی این که کل کاربران تو یه جدول یا یه تیبل باشن
بعدش بیای یه row ایجاد کنی مثلا به نام Level !
حالا میای Level رو تو یه جدول دیگه تعریف می کنی بر فرض مثال 3 تا لول می سازی با دسترسی هایی که دوست داری یکی برای مدیر 1 ، یکی برای مدیر 2 و یکی هم برای کاربر
حالا میای تو تیبل یوزر ها برای هر یوزر تو row لول سطح دسترسیش رو با تیبل Level تعریف می کنی
امیدوارم متوجه شده باشی

texas
September 27th, 2010, 02:11
راستش متوجه نشدم درست
اگر ميشه يك نمونه از ساختار تيبل رو بذارين

Rezash
September 27th, 2010, 06:17
ببين اگر خودم باشم ترجيح ميدم كار آسون تر رو انتخاب كنم !
من ميام يك جدول براي همه مي سازم
يك جدول پرميشن هم ميسازم
اگر بخش هاي برنامه قرار نيست هر روز تغيير كنند و يك سري امكانات ثابت مثل ارسال تيكت و .. هست خيلي راحت اين كار جواب ميده
در جدول پرميشن يك ستون user id و يك سري ستون براي اختيارات دلخواه تعريف مي كني
حتي بعدا ميتوني در صورت اضافه شدن بخش جديد يك ستون ديگه به جدول اضافه يا كم كني
البته اگر قرار باشه زياد بخش ها تغيير كنه ،‌تغيير ساختار جدول در هر نوبت زياد جالب نيست و بايد يكم حرفه اي تر عمل كرد !
يعني مثلا يك جدول پرميشن داريم با ستون هاي :
id
شناسه كاربر (user id)
نام پرميشن (permission)
* نام پرميشن : ميتونيم براي هر بخش يا عمليات يك نام در نظر بگيريم براي اين كار ميتونيم در اول يا اون بخش از كدمون يك ثابت مثلا به نام permission_name در نظر بگيريم
حالا اگر خواستيم كاربري به فلان بخش دسترسي داشته باشه يك سطر جديد در جدول permission درج مي كنيم و نام پرميشن رو بربر نام ثابت اون منطقه يا عمليات و شناسه كاربر رو هم كه مشخصه ؛ مي ذاريم
و اگر خواستيم پرميشني رو از كاربر بگيريم مي تونيم سطر مربوطه رو حذف كنيم

texas
September 27th, 2010, 15:31
يك مورد ديگه هم هستش
چون من الان از هر يوزري يك سري اطلاعات ميخواهم
مثلا كاربر معمولي احتاجي به درج خيلي از مشخصات رو نداره شايد مثلآ 5 فيلد
ولي كاربر حرفه اي بايد اطلاعات بيشتري رو درج كنه مثلا 12 فيلد
خوب با روش شما كه يك جدول يوزر باشه بايد كل اطلاعات كاربران در اين يك جدول درج بشه

Rezash
September 29th, 2010, 15:02
يك مورد ديگه هم هستش
چون من الان از هر يوزري يك سري اطلاعات ميخواهم
مثلا كاربر معمولي احتاجي به درج خيلي از مشخصات رو نداره شايد مثلآ 5 فيلد
ولي كاربر حرفه اي بايد اطلاعات بيشتري رو درج كنه مثلا 12 فيلد
خوب با روش شما كه يك جدول يوزر باشه بايد كل اطلاعات كاربران در اين يك جدول درج بشه

اصولا يوزرها بهتر هست پروفايل يكسان ولي پرميشن ها مجزايي داشته باشند
اين فيلد ها رو اگه مثال بزني مه چي هستند ميشه بهتر نظر داد.

texas
September 29th, 2010, 15:33
اصولا يوزرها بهتر هست پروفايل يكسان ولي پرميشن ها مجزايي داشته باشند
اين فيلد ها رو اگه مثال بزني مه چي هستند ميشه بهتر نظر داد.

ببين رضا جان اين همون پروژه هستش كه قبلا بهت گفتم
كاربراي معمولي اجازه دانلود و استفاده از سايت رو دارن
ولي كاربر حرفه اي براي تاييد صلاحيت بايد يك سري اطلاعات كه نياز هستش رو در اختيار ما بذاره كه شايد اين اطلاعات زياد باشن

Rezash
October 13th, 2010, 20:45
ببين رضا جان اين همون پروژه هستش كه قبلا بهت گفتم
كاربراي معمولي اجازه دانلود و استفاده از سايت رو دارن
ولي كاربر حرفه اي براي تاييد صلاحيت بايد يك سري اطلاعات كه نياز هستش رو در اختيار ما بذاره كه شايد اين اطلاعات زياد باشن

با شرايطي كه ميگي به نظرم استفاده از روش دوم بهتر هست:

يعني مثلا يك جدول پرميشن داريم با ستون هاي :
id
شناسه كاربر (user id)
نام پرميشن (permission)
* نام پرميشن : ميتونيم براي هر بخش يا عمليات يك نام در نظر بگيريم براي اين كار ميتونيم در اول يا اون بخش از كدمون يك ثابت مثلا به نام permission_name در نظر بگيريم
حالا اگر خواستيم كاربري به فلان بخش دسترسي داشته باشه يك سطر جديد در جدول permission درج مي كنيم و نام پرميشن رو بربر نام ثابت اون منطقه يا عمليات و شناسه كاربر رو هم كه مشخصه ؛ مي ذاريم
و اگر خواستيم پرميشني رو از كاربر بگيريم مي تونيم سطر مربوطه رو حذف كنيم