mahdimahdi58
دوشنبه 24 مرداد 1390, 01:57 صبح
با سلام
من با سی شارپ برنامه می نویسم و بانک اطلاعاتم اس کیو ال هست. یه جدول اصلی A با کلید اصل id دارم. دو نفر در دو مکان مجزا روی یک دیتابیس و در جدول A یک مقدار به کلید id اختصاص میدن. مثلا id نام گروه کالا باشه. و دو کاربر دارن یک گروه کالا با نام "غلات" رو با هم ایجاد می کنن.
صفحه فرم ایجاد این گروه کالا، چون در ابتدا آفلاین هست نمی تونه این همزمانی رو چک کنه و هر کدوم که دومین نفر در ثبت نام کالا باشه با یک خطا روبرو میشه. آیا راهی هست که از این خطا جلوگیری کنه؟
در نتیجه:
اگه جدول B با کلید خارجی id داشته باشیم که با جدول A (تعریف شده در بالا) ارتباط داشته باشه و به صورت آفلاین فیلد id جدول A با نام "غلات" رو ایجاد کنیم. حالا ردیفی در جدول B مربوط به مثلا "گندم" رو بنویسیم که جزء گروه "غلات" هست. و یک کاربر دیگه ای هم همین کار رو بکنه، به محض ذخیره اطلاعات توسط کاربر اول، کاربر دوم با خطا مواجه میشه که باعث به هم ریختن اطلاعاتش میشه.
چطور از ایجاد این خطاها جلوگیری کنیم؟
من با سی شارپ برنامه می نویسم و بانک اطلاعاتم اس کیو ال هست. یه جدول اصلی A با کلید اصل id دارم. دو نفر در دو مکان مجزا روی یک دیتابیس و در جدول A یک مقدار به کلید id اختصاص میدن. مثلا id نام گروه کالا باشه. و دو کاربر دارن یک گروه کالا با نام "غلات" رو با هم ایجاد می کنن.
صفحه فرم ایجاد این گروه کالا، چون در ابتدا آفلاین هست نمی تونه این همزمانی رو چک کنه و هر کدوم که دومین نفر در ثبت نام کالا باشه با یک خطا روبرو میشه. آیا راهی هست که از این خطا جلوگیری کنه؟
در نتیجه:
اگه جدول B با کلید خارجی id داشته باشیم که با جدول A (تعریف شده در بالا) ارتباط داشته باشه و به صورت آفلاین فیلد id جدول A با نام "غلات" رو ایجاد کنیم. حالا ردیفی در جدول B مربوط به مثلا "گندم" رو بنویسیم که جزء گروه "غلات" هست. و یک کاربر دیگه ای هم همین کار رو بکنه، به محض ذخیره اطلاعات توسط کاربر اول، کاربر دوم با خطا مواجه میشه که باعث به هم ریختن اطلاعاتش میشه.
چطور از ایجاد این خطاها جلوگیری کنیم؟