آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

online And offline database

Vahid  10 سال پیش  10 سال پیش
0 0

با سلام
همین طور که از نام سوال مشخصه می خوام دیتابیس داخلی اندروید رو با دیتابیس mySql سایت sync کنم.
یعنی یک دیتا بیس لوکال رو گوشی دارم که اطلاعات ورودی از کاربر رو ذخیره می کنه حالا هر وقت کاربر خواست sync بشه باید اطلاعات از دیتابیس داخلی به سرور منتقل بشه و در mySql سایت ذخیره بشه و اگه دیتابس سایت اطلاعاتی داره که تو دیتابیس گوشی نیست به دیتابیس گوشی اضافه کنه.
راهی که به ذهن خودم می رسه اینه که دیتایی که کاربر در موقع افلاین ذخیره می کنه رو مشخص کنم و موقع sync شدن این دیتا رو به سمت سرور سایت پاس بدم. و بعد از انتقال کامل اطلاعات به سمت سایت این بار از سایت کل اطلاعات دیتابیس رو بگیرم و دیتابیس داخلی رو یکبار حذف کنم و با اطلاعات دریافتی دوباره پرش کنم.


این الگوریتم درسته؟ اگه تعداد رکوردهام زیاد باشه مشکلی نمی خورم(منظور سرعته) ؟
کتابخونه ای برای اینکار وجود داره؟

پیشاپیش از توجه همه دوستان تشکر می کنم.

+1 0
این که کل دیتا ها رو پاک کنید و دوباره پر کنید کاملا غلطه D: بر اساس یه فیلدی که در دیتا بیس لوکال مشخصه الان مقدارش چنده این کار رو بکنید و درخواست بدید به وب سرویس که چیزای جدیدتر از اون فیلد رو براتون بفرسته و شما ذخیره کنید (10 سال پیش)
0 0
اینجوری مشکل دارم چون ممکنه دیتا توسط کاربرای دیگه ویرایش شده باشه. مجبورم همه دیتابیس رو دوباره از سایت بگیرم. (10 سال پیش)
0 0
کسی نظری ندراه؟؟؟ در ضمن لایبرری SqlAssetHelper رو هم دیدم ولی فکر نمی کنم به درد من بخوره. (10 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Vahid  10 سال پیش
0 0

سوالم رو جور دیگه مطرح می کنم:

من یک دیتابیس انلاین دارم که رو سرورم قرار داره. می خوام کاربر علاوه بر اینکه دیتا رو از دیتابیس انلاین مشاهده، ویرایش و اضافه می کنه بتونه همین عملیات رو به صورت افلاین هم انجام بده . فقط در حالت افلاین باید در اولین فرصتی که انلاین می شه، اطلاعات موجود در گوشی با دیتا بیس روی سرور ادغام بشه یعنی اگه کاربر اطلاعاتی رو در حالت افلاین اضافه کرده به دیتابیس سرور هم اضافه بشه.

0 0
(10 سال پیش)
+1 0
دیتابیس آنلاین شما قرار برای تمامی کاربرانی که دارین یکی باشه و کاربران فقط اطلاعات یک جدول رو ویرایش میکنن یا هر کاربر بسته به Id خودش یک جدول داره و اون رو ویرایش میکنه (10 سال پیش)
0 0
چند تا جدول دارم که هر کاربر می تونه به همش دسترسی داشته باشه و اونا رو ویرایش کنه یا بهش اضافه کنه. (10 سال پیش)
+1 0
این که کل دیتا ها رو پاک کنید و دوباره پر کنید کاملا غلطه ، به نظر میتونید یه ستون توی جدولتون بذارید که در اون آفلاین یا آنلاین بودن به اضافه یک شمارنده مشخص بشه مثلا برای حالت آفلاین off1-off2 -off3 , ... بشه و برای حالت آنلاین هم on1 , ...باشه ، و با اضافه شدن هر ردیف بسته به حالت آفلاین یا انلاین یکی به مقدار مورد نظر اضافه بشه ، در مرحله بعد با هر بار آنلاین شدن برنامه آخرین مقدار off , on رو مقایسه کنید با آخرین مقداری که در جدولها هست اگه مساوی بودن که هیچ اگه مساوی نبودن مقادیری که جدیدا اضافه شده به جدول دیگه اضافه بشه البته این ایده ای بود که به ذهنم رسید باید یکم روش کار کرد (10 سال پیش)
0 0
خیلی ممنون کمال عزیز. درضورتیکه کاربر فقط به جدول رکورد اضافه کنه، چیزی که شما میگی درسته اما اگه اطلاعات ویرایش شده باشه دیگه نمیشه با این الگوریتم دیتا رو بروز کرد. (10 سال پیش)
+1 0
برای ویرایش کردن هم میتونید یه ستون اضافه کنید و مثل بالا اگه رکوردی ویرایش شده باشه اون رکورد رو اپدیت کنه ولی این نکته رو باید در نظر بگیرید که پس از اپدیت مقادیر این ستون رو خالی کنید ، در واقع همه مقادیر این ستون خالی هست و وقتی ردیفی ویرایش میشه مثلا مقدارش true میشه و با هر بار انلاین شدن همه true ها باید آپدیت و سپس false بشن. (10 سال پیش)
+1 0
برای ویرایش کردن هم میتونید یه ستون اضافه کنید و مثل بالا اگه رکوردی ویرایش شده باشه اون رکورد رو اپدیت کنه ولی این نکته رو باید در نظر بگیرید که پس از اپدیت مقادیر این ستون رو خالی کنید ، در واقع همه مقادیر این ستون خالی هست و وقتی ردیفی ویرایش میشه مثلا مقدارش true میشه و با هر بار انلاین شدن همه true ها باید آپدیت و سپس false بشن. (10 سال پیش)
0 0
کِی ستون رو خالی کنم؟ من چند تا کاربر دارم که باید دیتابیس همه اونا اپدیت بشه. و اگر بعد از آپدیت ستون رو خالی کنم کاربرای دیگه تغییرات براشون اعمال نمیشه. (10 سال پیش)
پاسخ به سوال 
p3ym4n  10 سال پیش
+2 0

سلام ٬ شما راجع به mysql replication سرچ کن ٬ اینکارو که می خواید انجام بدید با استفاده از این به طور ساده امکانپذیره ٬ البته من خودم تا حالا اینکار نکردم که بخوام بیشتر واستون توضیح بدم.


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .