پس پایگاه داده فقط باید تو یکی از کامپیوترهای شبکه نصب شه؟
یا اینکه همراه نرم افزار تو همه کامپیوترها نصب شه و یکی از کامپیوترها بعنوان سرور باشه ، اگه اون سیستم از شبکه خارج شد همه کامپیوترها با پایگاه داده خودشون کار کنند و هر وقت سیستم سرور به شبکه وصل شد اطلاعات پایگاه داده سرور رو آپدیت کنند؟
این دومی که گفتم مرسوم هست؟
یا تو شبکه و پایگاه داده ها مشکلی ایجاد میکنه؟
اینکه یک پایگاه داده محلی (local) هم داشته باشید که یک option محسوب میشه وگرنه اگه قراره اطلاعاتی بین کاربران به اشتراک قرار بگیره دیگه وقتی سرور از مدار خارج شد عملا اشتراک داده ای در کار نیست.
اینکه پایگاه داده ها sync بشن پیاده سازی اش خیلی دشواره چون منطق اش باید خیلی پیچیده باشه، فرض کنید کاربر A یک آیتمی رو پایگاه داده پاک کنه که هنوز sync نشده. کاربر B هم کمی بعد برای اون آیتم یک عملیات انجام میده که بازم sync نشده. اولا زمانی که سرور به مدار برگشت زمان sync شدن دو تا پایگاه داده A و B مستقل و متفاوته. موقع sync شدن هر کدوم شون هم در جریان تغییرات سایر کاربران نیستند چون سایر فعالیت های محلی هنوز sync نشدن.
الان موقع sync شدن میخواهید چطور رفتار کنید؟ پایگاه داده سرور رو مبنا قرار بدید و فعالیت های A و B رو نادیده بگیرید؟ پایگاه داده A رو مبنا قرار بدید و سرور و B رو نادیده بگیرید؟ پایگاه داده B رو مبنا قرار بدید و سرور و A رو نادیده بگیرید؟ هر کدوم که زودتر sync بشن شرایط کلا تغییر می کنه و نمی دونید هنوز چه عملیات هایی از قبل مونده که در آینده ممکنه sync بشه. حداقل در مورد برنامه های حسابداری که اطلاعات بهم مربوط اند نمیشه همچین منطقی داشت، اینجور کاربرد ها مناسب کاربرانی است که روی پروژه یا فایل های مستقل کار می کنند که sync شدن شون تداخلی با سایر پروژه ها و فایل ها نداره.