iman_pc_love
پنج شنبه 27 بهمن 1390, 00:55 صبح
برای یک برنامه چند کاربره فرض کنید یه جدول با 30000 رکورد تو دیتابیس داریم که تمام این 30000 رکورد برای هر کاربر در یک شی DataTable به صورت local لود شده و در یک شی DataGridView به کاربر نمایش داده میشه، هر کدوم از این رکورد ها در بعضی مواقع ممکنه توسط کاربرای دیگه تغییر پیدا کنه، یا اصلا رکوردی اضافه یا حذف بشه! چطور میشه این تغییرات رو به شی DataTable همه کاربرها انعکاس داد؟
مثلاً فرض کنید در یک کشور قیمت اجناس (30000 جنس) لحظه ای تغییر پیدا میکنه و ما میخایم در جای جای این کشور تابلو هایی را نصب کنیم که قیمت لحظه ای را نشان بده و تغییر قیمت هم کمه یعنی آنقدر نیست که همیشه در تکاپو باشه ولی ما میخایم تابلو ها تغییرات رو به صورت آنی نشون بده، یعنی مثلا هر یک دقیقه یا 30 ثانیه یا هر بازه زمانیه مشخص نیایم کل 30000 رکورد رو از دیتابیس بخونیم ، می خایم یه جوری باشه که هر وقط دیتابیس تغییر کرد فقط همون تغییرات به تابلوها ارسال بشه.
یک سوال دیگه : تو سناریوی بالا تغییرات اطلاعات دیتابیس کمه پس بهتره در هنگام شروع برنامه برای هر کاربر یک بار تمام 30000 رکورد از دیتابیس به یک شی DataTable لود بشه و بعد فقط تغییرات دیتابیس یه جوری به DataTable منتقل بشه، حالا اگه تغییرات زیاد باشه چه راه حلی براش دارید؟ میشه مثلا بجای اینکه هر کاربر روی کامپیوتر خودش یک DataTable داشته باشه بیایم یه سرور بزاریم شی DataTable رو سرور باشه و به صورت اشتراکی برای همه استفاده بشه؟
مثلاً فرض کنید در یک کشور قیمت اجناس (30000 جنس) لحظه ای تغییر پیدا میکنه و ما میخایم در جای جای این کشور تابلو هایی را نصب کنیم که قیمت لحظه ای را نشان بده و تغییر قیمت هم کمه یعنی آنقدر نیست که همیشه در تکاپو باشه ولی ما میخایم تابلو ها تغییرات رو به صورت آنی نشون بده، یعنی مثلا هر یک دقیقه یا 30 ثانیه یا هر بازه زمانیه مشخص نیایم کل 30000 رکورد رو از دیتابیس بخونیم ، می خایم یه جوری باشه که هر وقط دیتابیس تغییر کرد فقط همون تغییرات به تابلوها ارسال بشه.
یک سوال دیگه : تو سناریوی بالا تغییرات اطلاعات دیتابیس کمه پس بهتره در هنگام شروع برنامه برای هر کاربر یک بار تمام 30000 رکورد از دیتابیس به یک شی DataTable لود بشه و بعد فقط تغییرات دیتابیس یه جوری به DataTable منتقل بشه، حالا اگه تغییرات زیاد باشه چه راه حلی براش دارید؟ میشه مثلا بجای اینکه هر کاربر روی کامپیوتر خودش یک DataTable داشته باشه بیایم یه سرور بزاریم شی DataTable رو سرور باشه و به صورت اشتراکی برای همه استفاده بشه؟