PDA

View Full Version : هماهنگ سازی دیتابیس سمت سرور و دیتابیس روی نرمافزار ویندوزی



H:Shojaei
جمعه 28 فروردین 1394, 22:56 عصر
سلام دوستان...
بنده دارم یه نرم افزاری مینویسم که قراره هم روی وب باشه هم نرم افزار ویندوزیش باشه هم نرم افزار اندرویدش همه با هم متصل هستن و دیتابیس های خودشون رو دارن که آفلاین بتونن کار کنن و هنگام آنلاین شدن اتصال با سرور برقرار بشه داده های جدید به سرور منتقل بشه و باقیه از دیتابیس سرور دادده های جدید رو بردارن...
حالا سوالم اینه که چطور به بهترین روش دیتابیس سرور و دیتابیس روی ویندوز (اندرویدم هرکاری با این دو کردم با اونم انجام میدم) رو به هم متصل کنم و داده هاشون هماهنگ بشن؟! طوری که این دو دیتابیس به لحاظ ساختاری و همچنین محتوایی مثل هم باشن همیشه، و به بهینه ترین نحو این کار انجام بشه؟
مثلا اینسرت که میشه تو یکی توی اون یکی هم همین کار انجام بشه ویرایش و یا هر کاری که روی دیتابیس انجام میشه و اگر مثلا سمت ویندوز آفلاین بود و اینسرتی انجام شده بود بعد که آنلاین شد چطور این دیتابیس ها رو با هم مقایسه کنم و فقط همون یک سطر رو بفهمم که درج شده و اون رو توی دیتابیس سرور هم درجش کنم و یا بالعکس...
سمت ویندوز که قراره C# باشه و سمت سرور به دلیل تسلط بیشترم به php نسبت به asp نمیخوام asp کار کنم مگر ناچار باشم یا ابزارهای خاص و عالی در این مورد باشه که مثلا هماهنگ سازی بین دو دیتابیس sqlserver نسبت به sqlserver با mysql رو خیلی راحت کرده باشه...
حالا به نظر شما چکار کنم!؟

Unique
جمعه 28 فروردین 1394, 23:20 عصر
راستش من زمانی که هنوز اینترنت Dialup بود و ADSL نبود یا اصلا به صرفه نبود و خیلی کم بود نرم افزار مدیریت سایت را offline کار میکردم و پایگاه داده اصلی را به چندین روش که حالا قصد طرحش را ندارم با پایگاه داده offline یکی میکردم !

اما دوست من الان دیگه این کارا خیلی مسخره هستش. شما بهتره یک پایگاه آنلاین داشته باشی و مثلا یک وب سرویس (حالا REST هم باشه خوبه و نیاز نیست بری سراغ SOAP) ایجاد کنی که وب سایت ، نرم افزار ویندوزی شما و اندرورد از طریق این وب سرویس با پایگاه در ارتباط هستند ! داشتن ۳ تا Database که باید با هم Sync بشن اصلا عاقلانه نیست. کلا به دردسراش نمی ارزه و به نظر من واقعا دلیلی برای تحت وب نبودن پایگاه اصلی وجود نداره.

H:Shojaei
جمعه 28 فروردین 1394, 23:35 عصر
درست میفرمایید ولی این نرم افزار باید همیشه کار کنه فرض کنید هزار نفر حالا نه صد نفر میخوان از این سرویس استفاده کنن و فقط هم باید آنلاین باشن که بشه کار کرد باهاش بعد این به نظر من که حتی یه ایراد هم محسوب میشه که فقط باید به نت وصل بود!
سرویسهایی که ارایه میشه طیف گسترده ای رو دربر میگیره و این همکان اگر نباشه ظعفی واسش میشه تقریبا...!
اینطوری مثلا یک روز هم که اینترنتشون قطع باشه به راحتی روز بعد اطلاعات به روز میشه... حالا اندرویدو میشه دیتابیس نذاشت که بهتر هم هست ولی نرمافزاره که بیشتر بخش مدیریت این سمت هست بهتره دیتابیس خودشو داشته باشه...
واسه درک کلی از کار نرم افزار این که فرض کنید توی یک فروشگاه نصب شده به محض ورود یک مشتری باید اطلاعاتش توی سیستم درج بشه حالا اینترنت قطع میشه چکار کنه طرف!؟ صبر کنه نتش وصل بشه خوب از محبوبیت نرم افزار کاسته میشه...
بعضی کارا شاید دردسر زیادی داشته باشن ولی محبوبت نرم افزار و کارایی رو بیشتر میکنن... اینطور نیست؟

H:Shojaei
شنبه 29 فروردین 1394, 16:02 عصر
واقعا چه کنم ؟! از یه جهت دیگه هم یه دیتابیس روی سرور فقط خیلی دردسرهاش کمتره تا دیتابیسی که روی هریک از این پلتفرم ها باشه! ولی باز این که هرکدوم دیتابیس داشته باشن مزیت زیادی که داره این که میشه آفلاین هم باهاشون کار کرد...!
دوستان راهنمایی کنید لطفا موندم سر دو راهی!

Unique
شنبه 29 فروردین 1394, 23:52 عصر
واسه درک کلی از کار نرم افزار این که فرض کنید توی یک فروشگاه نصب شده به محض ورود یک مشتری باید اطلاعاتش توی سیستم درج بشه حالا اینترنت قطع میشه چکار کنه طرف!؟ صبر کنه نتش وصل بشه خوب از محبوبیت نرم افزار کاسته میشه...
در مورد اینترنت راستش حرف شما را کلا قبول ندارم. خود من از صبانت سرویس ۲ مگ (البته سرعتش مهم نیست و ۱۲۸ هم همین منواله) دارم و صبح تا شب هم پا سیستم و نت هستم ! اصلا یادم نمیاد آخرین باری که قطعی داشتم کی بوده !!!
برای جاهایی هم برنامه آنلاین نوشتم که مراجعه کننده داشتند و شاید در ۵ دقیقه باید ۷ یا ۸ نفر را سرویس میدادن و مگر در مواقع خیلی خیلی خاص قطعی نداشتند.

کار دیگه ای که میشه برای اینترنت کرد استفاده از دو تا سرویس هست. میتونید یک سرویس ADSL و یک سرویس Wireless یا Wimax به عنوان پشتیبان داشته باشین تا ضریب اطمینان از سرویس اینترنت بره بالا (خودم توی یکی از پروژه ها برای چند ماهی این کار را کردم اما بعدش مشتری دید داره هزینه بیخودی میده و ADSL مشکل حادی نداره اومد Wireless که Point to Point بود و سرعت بیشتری هم داشت را کنسل کرد).

باز هم فکر میکنم جدا کردن Database ها توی چند Platform اصلا کار درستی نیست.

H:Shojaei
یک شنبه 30 فروردین 1394, 10:03 صبح
ممنون قانع شدم دیگه همون دیتابیس روی سرور کافیه...
حالا یه سوال دیگه به نظر شما بهتره دیتابیس روی سرورم sqlserver باشه یا mysql چون بالا گفتم php بیشتر کار کردم و خودم هم دوست دارم از همین با mysql سمت سرور استفاده کنم حالا اگر بدونم sqlserver بهتره امکانات بهتری ارایه بده یا سرعتش بیشتر باشه واسه این موضوع sqlserver استفاده کنم اگه نه که واسه خودم دردسر php نوشتن با mysql کمتره...! به نظر شما کدومو با این شرایط بهتره استفاده کنم؟!

j_naroogha@yahoo.com
یک شنبه 30 فروردین 1394, 10:45 صبح
بنظرم فرقی نمیکنه عزیز . در این حدی که من و شما از دیتابیس بهره میبریم هر دو تا جواب میدن.
اما خب چون پی اچ پی داری مینویسی همون mysql....

H:Shojaei
یک شنبه 30 فروردین 1394, 11:35 صبح
اطلاعات در آینده خیلی میشن الآن ملاک نیست زیاد مثلا فکر کنید شاید اگر جواب بده و خوب پیش بره طرح 100 تا دیتابیس که هر کدوم مثلا صد هزار رکورد مثلا داشته باشن و هی بیشتر هم میشه میخوام همین ابتدای راه انتخابم درست باشه..
و در ضمن اگر بدونم این سمت C# دارم مینویسم واسه سرور هم اگر sqlserver همراه با asp استفاده کنم که مزیت های خوبی داشته باشه نسبت به این که php ,mysql استفاده کنم همونی که بهینه تر و بهتر البته با اختلاف نسبتا خوب که قانع بشم از asp sqlserver استفاده میکنم...
این که روی سرور php با sqlserver که به نظر خودم اصلا عاقلانه نیست...!!!!! (شایدم باشه)

Unique
یک شنبه 30 فروردین 1394, 14:15 عصر
راستش من بزرگترین پروژه هام که اطلاعات میلیونی هم دارن روی MySQL به خوبی جواب میده. روی MSSQL هم البته کار کردم اما سرویس آنلاین که میخواین بخرین خوب MySQL خیلی خیلی ارزونتر در میاد. من حتی برای net. هم با MySQL کار میکردم. به نظر من اگه با MySQL راحت هستین هیچ نیازی به استفاده از MSSQL نیست.

در مورد #C و PHP که خیلی توی انجمن بحث شده و میتونی با جستجو همه بحث ها را بخونی ! نتیجه ای هم نداشته ! نه اینجا بلکه هیچ جا نتیجه ای نداره ! هر دو ابزار کارآمدی هستند اما کلا هزینه شما با PHP و Apache و لینوکس و MySQL خیلی خیلی کمتر از ویندوز در می آید.