PDA

View Full Version : انتقال اطلاعات از دیتابیس کلاینت ها به دیتا بیس سرور مرکزی



dashti011
یک شنبه 16 آبان 1395, 17:17 عصر
سلام دوستان
راستش من دقیقا نمیدونم این سوالم در بخش درست پرسیدم یا نه ، ممنون میشم راهنماییم کنید.
فرض کنیم یه شرکتی داخل مرکز استان قرار دارد و 5 شعبه هم در شهرستان دارد و همه این شعبه ها از طریق اینترانت داخلی به هم وصل هستن.
توی هر کدوم از شعبه ها یک دستگاه حضور غیاب هست که با برنامه اون زبان C#‎‎‎‎‎‎‎‎‎‎ و پایگاه داده MS sql server 2014 کار میکنند.
روال کار به این صورت هست که دستگاه های حضور غیاب شعبه ها به صورت مستقل از هم کار میکنند و فقط افراد اون شعبه برای هر دستگاه حضور غیاب تعریف میشن.
مدیران هر شعبه میتونن امارو اطلاعات دستگاه شعبه خود را ببینند اما مدیر کل سازمان نیاز داره تا اطلاعات حضور غیاب همه شعبه را یکجا با هم داشته باشند و حتی در صورتی که دستگاه حضور غیاب در شعبه ای خاموش باشد ، مدیر کل بتواند به اطلاعات اون دستگاه ( طبق آخرین بروز رسانی که مثلا برای دیروز هست) به اطلاعات که تا دیروز هست دسترسی داشته باشد.
من با جستجو به موضوع Replication برخورد کردم اما هنوز موضوع و راه حل برام مبهم هست.

راه درست و اصولی برای ارسال اطلاعات دیتابیس ازچند کلاینت ها به دیتابیس در سرور مرکزی و ادغام همه اطلاعات در یک دیتابیس به چه صورتی میباشد ؟ آیا از طریق وب سرویس راه حل درستی هست؟ یا باید از Replication استفاده بشه ؟یا میشه به export و import این کار رو انجام داد؟ آیا باید خودم یک رابط بنویسم و اطلاعات ارسال بشه ؟!

نکته 1: سرور اصلی صرفا دریافت کننده اطلاعات میباشد و تغییری در اطلاعات کلاینت ها ایجاد نمیکند!
نکته 2: در هر بروز رسانی فقط اطلاعات جدید به سرور ارسال میشود(با یه رابط اولیه از طریق وب سرویس ، کلاینت متوجه میشه اخرین اطلاعات ارسال شده تا کجا بود)
نکته 3 : در صورتی ک اطلاعاتی در کلاینت ها حذف شود الزامی برای حذف این اطلاعات در سرور نیست ( مثلا یکی از کلاینت های حضور غیاب یک شخصی را حذف میکنند اما این اطلاعات مربوط به شخص قبلا به سرور مرکزی ارسال شده و نیازی نیست در سرور هم پاک بشه ) ارتباط کاملا یک طرفه
نکته 4 : جدول و ساختار در کلیه کلاینت ها و سرور یکسان هست و هر ردیف جدول در کلاینت ها به وسیله اطلاعاتی نظیر کد شعبه تعیین میشود و Id ها هم بر حسب GUID هست.
نکته 5: در هر 24 ساعت حدود 1000 رکورد الاعات داریم

ممنون میشم راه حل اصولی را بهم بگید