راهکار برای برنامه جهت همگام سازی دو database
با سلام
من یه پروژ میخوام انجام بدم که کار بصورت لوکال و در همان بانک اطلاعاتی همراه برنامه ذخیره بشه و امکان ارسال اطلاعات به سرور اصلی در جایی که اینترنت در دسترس باشد وجود داشته باشد ممنون میشم یک راه کار برای نوشتن چنین برنامه ای در سی شارپ مطرح کنید.
نقل قول: راهکار برای برنامه
میتونید برنامه ای بنویسید web baseترجیحا و در کامپیوتر لوکال قابل اجرا باشد
و توسط IP Static از ظریق وب به دیتابیس یا این نرم افزار در کامپیوتر لوکال دسترسی داشت
نقل قول: راهکار برای برنامه
سلام دوست عزیز ممنونم از نظرتون ولی میخوام امکان ثبت اطلاعات به صورت آفلاینم وجود داشته باشه و کاربر در جایی که به اینترنت دسترسی داره بتونه اطلاعاتو انتقال بده و به سرور ارسال کنه
نقل قول: راهکار برای برنامه
من جوابتون در پست قبلی دادم
کامپیوتر لوکال شما میشه سرور شما و از طریق آی پی استاتیک به اون دسترسی دارید
همچنین میتونید یک نسخه تحت وب برنامتون که در یک هاستینگ مستقر شده به منابع این سرور منجمله دیتابیس دسترسی داشته باشد
نقل قول: راهکار برای برنامه
سلام
اگر برداشت من صحیح باشه در پروژه شما ارتباط با سرور به صورت دائمی نیست و مقطعی هست. در اینجا چالش اصلی همگام سازی اطلاعات هست. اگر مثلاً برنامه حسابداری باشه ما چند دسته اطلاعات داریم.
1-اطلاعات اصلی و پیکربندی حسابها که بین همه شعبه ها یکسان هست.
2-اطلاعات خاص هر شعبه مثل مشتریان و بازاریابها و فروشنده ها
3-اطلاعاتی مثل دریافتها و پرداخت ها و خرید و فروش ها و ...
از نظر من
اطلاعات دسته اول باید توسط ادمین تعریف بشن و سایر کاربران دسترسی برای تعریف این اطلاعات نداشته باشن. هر وقت که نیازی به تعریف آیتم جدید حس شد باید از ادمین درخواست بشه و اطلاعات مجدداً از سرور خونده پبشه.
اطلاعات دسته دوم باید با یک شناسه مثل کد شعبه جدا سازی بشوند. مثلا اگر علی با کد 1 توسط شعبه 1 تعریف بشه و همین اسم با همین کد در شعبه 2 هم تعریف بشه، موقع ثبت اطلاعات در سرور با مشکل روبرو میشیم
اطلاعات دسته سوم هم با استفاده از یک شناسه از سایر رکوردها باید جداسازی بشه.
موقع ثبت اطلاعات از دیتابیس لوکال به دیتابیس سرور، باید حتما از تراکنش استفاده بشه. ابتدا اطلاعات پایه در سرور ثبت بشه و شناسه ی مرتبط از سرور خونده بشه. بعد اطلاعات دسته سوم با توجه به شناسه جدیدی که از سرور برگشت داده شده در سرور درج بشه.
نقل قول: راهکار برای برنامه
با سلام
دقیقا شما درست متوجه شدین بزرگترین مشکل من همگام سازی اطلاعاته
ممنون میشم دوستانی که تجربه دارن یک روش اصولی و بهینه برای این کار معرفی کنن یا اگه اس کیو ال سرور ابزاری برای این کار داره بفرمایید
با تشکر
نقل قول: راهکار برای برنامه
امکان استفاده از هاست و جود نداره ما فقط باید با سرور اصلی برنامه دسترسی داشته باشیم اونم با ای پی ولید
ما مشکل اصلیمون همگام سازی اطلاعاته یه جوری که تو حجم بالا مشکلی پیش نیاد و این که از په روشی برای همگام سازی استفاده کنیم
نقل قول: راهکار برای برنامه
نقل قول: راهکار برای برنامه
با سلام
ممنون از پاسختون
این چه ابزاریه بیشتر میتونید توضیح بدید؟
من با replication چک کردم شدنی بود به نظرتون اشکالی در آینده پیش نمیاد برای استفاده از replication?
نقل قول: راهکار برای برنامه جهت همگام سازی دو database
من قبلا کاری شبیه به این که شما میگید رو انجام دادم البته در اون حالت برای من امکان Replication نبود.
شما اول از همه باید یک فیلد به هر جدول اضافه کنید که وضعیت Sync بودن یا نبودن رکورد رو با سرور روی شبکه مسخص میکنه. وضعیت هر رکورد میتونه Added,Modified,Deleted,Unchanged باشه و این مقادیر از طریق برنامه کنترل میشه.
بعد از این نیاز دارید به یک برنامه یا سرویس که دائم ارتباط با سرور رو بررسی کنه و هر زمان که ارتباط برقرار شد شروع به Sync کردن رکورد ها بکنه. این کار رو باید جدول به جدول انجام بده.
سمت سرور شبکه هم میتونید از یک وب سرویس بهره بگیرید که نیازی به کانکشن مستقیم به دیتابیس نداشته باشید.
موفق باشید.
نقل قول: راهکار برای برنامه جهت همگام سازی دو database
نقل قول:
نوشته شده توسط
sds1920
من قبلا کاری شبیه به این که شما میگید رو انجام دادم البته در اون حالت برای من امکان Replication نبود.
شما اول از همه باید یک فیلد به هر جدول اضافه کنید که وضعیت Sync بودن یا نبودن رکورد رو با سرور روی شبکه مسخص میکنه. وضعیت هر رکورد میتونه Added,Modified,Deleted,Unchanged باشه و این مقادیر از طریق برنامه کنترل میشه.
بعد از این نیاز دارید به یک برنامه یا سرویس که دائم ارتباط با سرور رو بررسی کنه و هر زمان که ارتباط برقرار شد شروع به Sync کردن رکورد ها بکنه. این کار رو باید جدول به جدول انجام بده.
سمت سرور شبکه هم میتونید از یک وب سرویس بهره بگیرید که نیازی به کانکشن مستقیم به دیتابیس نداشته باشید.
موفق باشید.
یک راه هم استفاده از rowversion در دیتابیس لوکال هست. در دیتابیس سرور یک جدول میخواهیم با آخرین rowversion سینک شده برای هر دیتابیس لوکال. در زمان برقراری ارتباط، در دیتابیس لوکال سطرهایی که rowversion بزرگتری از مقدار ذخیره شده در سرور دارند بایست sync بشوند.