PDA

View Full Version : سوال: جایگزینی id حذف شده



masmlink
پنج شنبه 11 شهریور 1389, 14:31 عصر
نوشتن تریگری که قبل از حذف یک آیتم id آنرا در تمامی جداولی که ارجاع خورده با نام جاگزین کند ممکن است؟ مثلا با حذف کالا نام آن در جداول دیگر به جای id نوشته شود تا نام کالا ،بدون سایر اطلاعات اضافی دیگر در آرشیو از دست نرود. با توجه به اینکه باید در این تاپل ،نوع داده معمولا nvarchar به جای یک نوع داده معمولا int جایگزین شود؟

morteza271
پنج شنبه 11 شهریور 1389, 17:32 عصر
اگه بخواین این کارو بکنین اولا باید id رو nvarchar تعریف کنی تا وقتی که نام کالا جایگزینش میشه خطا نده و همچنین id نباید کلید خارجی باشه...
اگه این دو کارو انجام بدین میتونین نام کالای حذف شده رو به جای id اون کالا توی جدول های دیگه وارد کنید...

ولی این کارم میتونید انجام بدین که به نظر من بهتره:
به جای این که اون کالا رو حذف کنید میتونید توی جدول یه ستون بذارین که مشخص کنه اون کالا حذف شده یا نه، که مثلا اگه حذف شده بود 0 بذاره در غیر اینصورت هم 1...
با اینکار دیگه نیازی نیست به جای id کالا اسمشو وارد کنید...
موفق باشید...

masmlink
جمعه 12 شهریور 1389, 10:41 صبح
به جای این که اون کالا رو حذف کنید میتونید توی جدول یه ستون بذارین که مشخص کنه اون کالا حذف شده یا نه، که مثلا اگه حذف شده بود 0 بذاره در غیر اینصورت هم 1...
با اینکار دیگه نیازی نیست به جای id کالا اسمشو وارد کنید...


من تا اینجا همیشه از همین روشی که شمابه عنوان جایگزین پیشنهاد کردید استفاده می کردم و از کارهایی که برای حذف توصیه کردیدهم اطلاع دارم ، ولی منظور من یک مکانیزم جدید حذفه که هم نام رو که معمولا مهمترین اطلاع در مورد موجودیت هاست نگه داره ،از طرفی حجم اطلاعات دیتا بیس رو کم کنه نه اینکه با وجود حذف هم ثابت نگه داره. برای این کار راهکار میخواستم .خودم فکر میکنم با یک cast بشه یه کارهایی کرد . ولی چه کاری؟

masmlink
یک شنبه 14 شهریور 1389, 11:09 صبح
یک راه دیگر هم هست ساخت یک جدول دیگر تنها با چهار ستون:
id خود جدول جدید
نام جدولی که آیتم از آن حذف شده
نام آیتم در جدولی که از آن حذف شده
id آیتم در جدولی که از آن حذف شده
بعد از حذف هر آیتم این اطلاعات از آن به جدول حذفیات برده بشن . اگه جدول اصلی فیلد زیاد داشته باشه فکر کنم اضافه حجم دیتا بیس از حالتی که فقط عناصر رو غیر فعال کنیم - به خصوص وقتی فقط نام برامون مهمه - خیلی کمتره .
نظرتون چیه ؟عملی هست؟