PDA

View Full Version : سوال: توی سیستمی که 10 مدیر داره چطور می تونیم لیست پیامهای جدید رو به همه مدیر ها نمایش بدیم؟



idocsidocs
سه شنبه 16 اسفند 1390, 16:55 عصر
فرض کنید توی یه وب سایت 10 نفر مدیر هستن.

چند سوال:

1- اگر در قسمت تماس با ما پیام جدید دریافت بشه، آیا هر 10 مدیر باید متوجه وجود پیام بشن یا اینکه اگر یکی از مدیران پیام رو مشاهده کرد و پاسخ داد دیگه لازم نیست سایر مدیران از این موضوع مطلع باشن؟

2- اگر قرار بشه که همه پیامها برای همه مدیران نمایش داده بشه، از چه روشی باید استفاده کرد ؟

soroush.r70
سه شنبه 16 اسفند 1390, 19:36 عصر
خوب ما فرض می کنیم یه خبری می ذاری از طریق صفحه مدیریت شما می خوای این خبر برای همه مدیرا نمایش بده باید کلید active بزاری پیشفرض 0 که اگه 1 بود این خبر برای همه مدیرا ارسال بشه در واقع برای مدیرا نمایش داده بشه یه فیلد active با پیشفرض 0 در بانک اطلاعاتی بزار بعد در قسمت ارسال خبر یه checkbox بزار که اگه این تیک خورد خبر برای مدیرا نشون داه بشه .

idocsidocs
سه شنبه 16 اسفند 1390, 19:45 عصر
این کاری که شما می گید برای یه مدیر جواب می ده. اما اگه سیستم چندتا مدیر داشته باشه از کجا باید بدونیم که مقدار active برای کدوم مدیر ست شده؟

soroush.r70
سه شنبه 16 اسفند 1390, 19:51 عصر
خوب مگه شما نمی خواین خبر برای همه مدیرا نمایش داده بشه خوب شما با یک بار active یه فیلد هم به این صورت برای مدیرا بزاری وقتی یک بار خودت active رو یک کردی با get برای مدیرای دیگه هم یک کنی که نمایش داده بشه

idocsidocs
سه شنبه 16 اسفند 1390, 20:26 عصر
خوب مگه شما نمی خواین خبر برای همه مدیرا نمایش داده بشه خوب شما با یک بار active یه فیلد هم به این صورت برای مدیرا بزاری وقتی یک بار خودت active رو یک کردی با get برای مدیرای دیگه هم یک کنی که نمایش داده بشه


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

Reza1607
سه شنبه 16 اسفند 1390, 20:30 عصر
روشي رو كه دوستمون گفت رو كوئريشو براتون مي نويسم
با اين تفاوت كه اگه مقدار active برابر 0 بود براي تمام مديران ارسال ميشه و اگه عددي غير از صفر بود براي همون مديري ارسال ميشه كه مقدار active نشون مي ده

شماره مدير = 102

SELECT * FROM message WHERE `active`=102 OR `active`=0


شماره مدير = 1

SELECT * FROM message WHERE `active`=1 OR `active`=0


به همين ترتيب براي بقيه مديران نمايش مي دين

idocsidocs
سه شنبه 16 اسفند 1390, 22:12 عصر
منظورتون اینه که اطلاعات مدیرانی که پیامهای جدید رو مطالعه کردن توی یه جدول ذخیره کنم؟

Reza1607
سه شنبه 16 اسفند 1390, 22:54 عصر
شما كل پيام ها رو داخل يك جدول ذخيره مي كنيد و براي اين كه پيام هاي هر فرد رو نمايش بدين شماره آي دي گيرنده پيام رو با شماره آي دي همون فرد مقايسه مي كنيد

idocsidocs
سه شنبه 16 اسفند 1390, 22:57 عصر
شما كل پيام ها رو داخل يك جدول ذخيره مي كنيد و براي اين كه پيام هاي هر فرد رو نمايش بدين شماره آي دي گيرنده پيام رو با شماره آي دي همون فرد مقايسه مي كنيد


یه پیام ثبت می شه و هر وقت هر مدیری لاگین کنه، باید این پیام رو به عنوان پیام جدید مشاهده کنه. بعد از اینکه پیام رو مشاهده کرد پیام به عنوان پیام خوانده شده ثبت بشه.

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

Reza1607
سه شنبه 16 اسفند 1390, 23:03 عصر
من اين مواردي رو كه گفتم به اين صورت بود كه تمام پيام ها نمايش داده ميشه ( هيچ گونه فلگي براي خوانده شدن يا نشدن مد نظر نبود)
براي اين چيزي كه شما مي خواين من دو تا راه رو پيشنهاد مي دم
راه حل اول ) شما به تعداد مديران يك پيام رو ذخيره كنيد ( براي هر مدير يك پيام جداگانه ارسال و يك فيلد هم براي خوانده شده يا جديد بودن پيام در نظر بگيريد)
راه حل دوم ) شما از يك جدول كمكي استفاده كنيد و در اون پيام هايي رو كه مديران مطالعه كردن آي دي شون رو درج كنيد و زماني كه خواستين پيام ها رو نمايش بدين چك كنيد ببينيد كه آيا آي دي اون پيام در جدو.ل دوم هست يا خير؟(البته براي همون مدير) اگر بود اون پيام رو به عنوان خوانده شده و اگر نبود به عنوان پيام جديد در نظر بگيريد