ساخت پنل ثبت اطلاعات و چگونگی سطح دسترسی ؟

0 امتیاز
26 بازدید
سوال شده مهر 5, 1394 توسط Fardin.Php  
برچسب گذاری دوباره مهر 6, 1394 توسط ASHKARAN

سلام دوستان

من یه سوال داشتم که ابتدا باید یه مقدار توضیح خوب بدم که بتونین بهم کمک کنید.

من برای شرکتی که براش کار میکنم یه پنلی رو نوشتم که ایمیلها و شماره تلفن هایی که بهش داده میشه رو تو دیتا بیس ثبت میکنه. و قسمت کاربرش ختم میشه به این صفحه فقط/ اما پنل مدیریت یه مقدار گسترده تر میشه و میاد به صورت های مختلف از اونها گزارش گیری میکنه طبق دسته بندی مثلا ایمیلهای کاربران سایت شیپور و غیره ..

و حالا میتونه با صفحه ی ارسال ایمیل برای همه اونها و یا گروهی از اونها ایمیل ارسال کنه . تا اینجا مشکلی نیست وحل شده ..

حالا مدیر شرکت میخاد این سیستمی که ما درست کردیم برو به شرکت های دیگه ای بفروشه و همزمان هم بتونه به ایمیل ها و شماره هایی که اونا برا خودشون دارن دسترسی داشته باشه ، در واقع مدیر ارشد باشه ... به صورتی که اونا به داده های ایشون دسترسی نداشته باشن اما ایشون به همه ی مدیرای دیگه دسترسی کامل داشته باشه.حالا من چطوری این مدیر هارو تفکیک کنم که مدیر ارشد بیاد کاربر مدیر جدید بسازه برای شرکت های دیگه و اونا هم بتونن یه مدیریت کامل فقط روی کارای خودشون داشته باشن نه بقیه !؟

در ضمن اینم خوبه بدونین که هر مدیری میاد کاربرای عادی تعریف میکنه تا براش ایمیل ثبت کنن تو دیتا بیس!

امیدوارم سرتون درد نیومده باشه ، رمان شد !

این مطلب را به اشتراک بگذارید

1 پاسخ

0 امتیاز
پاسخ داده شده مهر 6, 1394 توسط ASHKARAN  
انتخاب شده مهر 7, 1394 توسط ASHKARAN
 
بهترین پاسخ

با عرض سلام

اتفاقا تو پروژه ای که منم الان دارم انجام میدم اتفاقی شبیه به همین افتاده.....

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

هر شهر هم سیستم و مدیر خودش رو داره......

اما امروز همکارم یه لبخند ملیحی بهم زد و گفت می خوایم مدیر استان هم بتونه تمام شهر ها رو مدیریت کنه .

منم کاملا خونسرد گفتم OK  که یهویی گفت می خوایم مدیر کشوری هم بتونه تموم استان ها و شهر هارو مدیریت کنه ....

با این تفاسیر کل سیستم مدیریت کاربرانی که طراحی کرده بودم رو باید مجدد طراحی کنم

بازم گفتم OK  اما ایندفعه حس من رو تصور کنین....... :D

بگذریم.......

راجع به پروژه شما با همسرم مشورت کردم.

پیشنهاد ایشون اینه:

"یک جدول به اسم COMPANY  ساخته و اطلاعات مربوط به هر شرکت رو در اون ثبت کنید.

در جدول اطلاعات هم کلید اصلی جدول COMPANY رو به عنوان کلید خارجی اضافه کنید.

تا به اینجا شما می تونید بفهمید کدوم ایمیل مال کدوم شرکته.....

حالا کافیه به جدول کاربران هم مثل جدول اطلاعات کلید اصلی جدول COMPANY رو به عنوان کلید خارجی اضافه کنید....

حالا شما می تونید بفهمید کدوم کاربر ماله کدوم شرکته !

برای تعیین سطح دسترسی کاربران هم می تونید از یک فیلد عددی  به نام LEVEL استفاده می کنیم.

به عنوان مثال:

  • اگر مقدار این فیلد برابر با ۱ بود یعنی کاربر ادمینه
  • اگر مقدار فیلد ۲ بود یعنی کاربر مدیره
  • اگر هم مقدار فیلد ۳ بود یعنی کاربر معمولیه.....

خب تا به اینجا ما کاربران و شرکت ها رو ثبت کردیم و مشخص کردیم کدوم ایمیل مال کدوم کاربره.....

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

SELECT * FROM TABLE_EMAIL WHERE COMPANY = 143 ORDER BY date DESC

تو مثال بالا عدد ۱۳ کد شرکته.....

این ساده ترین روش ممکن برای مدیریت همچین سیستمیه که امیدوارم به دردتون بخوره اما.......

اما مسلما بهترین روش نیست !

چرا ؟

چون کل اطلاعات رو داریم تو یه جدول ذخیره می کنیم ! فکر کنید بعد از یکی ۲ سال که تعداد ایمیل ها زیاد بشه به این سادگی ها میشه این سیستم رو مدیریت کرد؟

پیشنهاد دوم اینه که برای ذخیره اطلاعات هر شرکت یک جدول مجزا بسازید.

با اینکار بسیار بسیار دسته بندی کارهاتون بهتر میشه اما QUERY های سخت تری هم در پیش خواهید داشت.....

در صورتی که حجم کارتون و مقدار اتصال کاربران خیلی خیلی زیاد نیست از روش اول استفاده کنین

اما اگر  حجم کارتون خیلی خیلی خیلی زیاده بهتره از روش روم استفاده بفرمایید"

این سیستم هایی که بیان شده برای زمانه خوبه که شما بخواین کل مجموعه رو در یک قالب جمع کنید و به مشتریانتون فقط پنل کاربری رو بفروشین.....

در صورتی که می خواین اسکریپت رو فروخته و روی هاست مشتریان نصب کنید  موضوع کمی متفاوته.....

میتونید وقتی یک USER  به DATABASE اضافه میکنین به جای LOCALHOST از ANY HOST  استفاده کنین .....

بدین ترتیب با کمی تغییرات میتونید پنل مدیر شرکت رو به هر دیتابیسی که دوست داشتید وصل کنید و اطلاعات اونها رو هم ببینید.

اما در این مورد رعایت مسایل امنیتی بسیار بسیار مهمتر از دفعات قبل میشه......

با احترام .

دارای دیدگاه مهر 6, 1394 توسط Fardin.Php  
ممنونم از این همه لطفتون مهندس،همینکه وقت میزارین خیلی برای من ارزشمنده
فک کنم برای من همون روش اول بهتر باشه .. اگر سوالی داشتم بازم مزاحمتون از طریق ادامه این سوال میشم.
بازم ممنون
شاد باشین ..

739 سوال

691 پاسخ

1,183 دیدگاه

345 کاربر

متاسفانه نیستم

این مطلب را به اشتراک بگذارید

ali.ashkaran@gmail
ما .....
  • سعی بر پاسخگویی به سوالات دیگران داریم.
  • به سوال و یا نظر دیگران احترام می گذاریم .
  • این وبسایت را به دیگران معرفی می کنیم.
  • همواره صمیمیت و ادب را رعایت می کنیم.
  • به سوالمان برچسب های مرتبط اضافه می کنیم.
  • در حین طرح سوال فرد خاصی را مخاطب قرار نمی دهیم .
...