PDA

View Full Version : مشکل با فیلد کلید و طراحی جدول نمایشگاه اتومبیل



SVSRGroup
یک شنبه 09 مرداد 1390, 22:07 عصر
سلام.

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

فیلد کلید توی جدول خودروهام "شماره موتور" هست
فیلدهای دیگه ای هم هست که بشه کلید کرد»» "شماره شاسی" "شماره شهربانی"

حالا مشکل من اینجاست که مثلا این ماشین فروخته شد، بعد از چند وقت دیگه دوباره خواست همین ماشین رو تو سیستم اضافه کنه، مشکل پیش میاد، این مشکل رو چیکار کنم.؟

جدول "خودرو" با جدول "مالک" ارتباط دارند (Owner_ID)

ممنون میشم راهنمایی کنید...

یوسف زالی
یک شنبه 09 مرداد 1390, 22:26 عصر
چه مشکلی پیش میاد؟
اگر تاریخ رو داشته باشید میشه مثلا ماشین X در تاریخ فلان به مبلغ فلان و ماشین X در یه تاریخ دیگه با ملبغ دیگه.
اگر گیرتون رو ذخیره داده هست ، کلید رو identity بگیرید که شماره ها در اون یک فیلد باشند. (کلید کاندید)

SVSRGroup
یک شنبه 09 مرداد 1390, 22:48 عصر
مثلا یکیش اینکه Owner_ID دفعه ی اول یه چیز بوده ، اما این دفعه فرق داره، شاید مالک خودرو تا الان 6 بار عوض شده :متفکر:
یا اینکه من یه فیلد برای هر خودرو دارم به نام توضیحات، مثلا توش وسایل اضافی ماشین رو قید میکنه(تایپ میکنه) شاید دفعه ی بعد که میخواد این خودرو دوباره اضافه بشه، توضیحاتش باید فرق کنه..

یوسف زالی
دوشنبه 10 مرداد 1390, 01:09 صبح
ببین در حقیقت اون ماشین ها دو تا ماشین حساب میشن.
ماشین سریال 10000 مثلا با شماره شاسی 5000
ماشین سریال 10001 با شماره شاسی 5000
اگر تکراری داشته باشی کجا گیر می کنی؟

SVSRGroup
دوشنبه 10 مرداد 1390, 20:17 عصر
دقیقا مشکلم اینه که فیلد کلیدم (شماره موتور) تکراری میشه...
==
در مورد کلید کاندید و identity اطلاع چندانی ندارم.

داش دمت گرم، اگه همینجا کوچولو توضیح بدی حله.

الان اینکه شما نوشتی سریال 10001.... من اینو به چه طریقی میتونم استفاده کنم.؟
VB.Net

یوسف زالی
دوشنبه 10 مرداد 1390, 20:42 عصر
یک فیلد به جدول اضافه کن که به عنوان کلید ازش استفاده کنی. با identity باشه. یعنی خودش برای هر ردیف یک شماره اختصاصی تولید می کنه.اگر اکسس هستی autonumber.

البته احتمالا حالا که داده داری به زحمت می افتی.
راه دیگه ای به ذهنم نمی رسه.

SVSRGroup
دوشنبه 10 مرداد 1390, 20:55 عصر
نه اصلا داده ای ندارم..
3-4 تا ردیف ریختم فقط واسه تست..
==
راه دیگه ای نیست.؟

یوسف زالی
دوشنبه 10 مرداد 1390, 21:42 عصر
کلید اصلی رو باید تغییر بدی دیگه.یشنهاد من همون identity هست.

panahgah
شنبه 15 مرداد 1390, 14:32 عصر
اينطور كه من از صحبت هاي سئوال كننده فهميدم ، يه ماشين با يك آيدي مشخص چندين بار امكان داره در سيستم وارد بو فروخته بشه .

به نظر من بهتر يك فيلد فلگ در نظر بگري براي هر ماشين كه هر وقت فروخته شد و از سيستم خارج شد فلگش ست بشه به False و هر وقت دو باره به سيستم اضافه شد و در سيستم موجود بود اين فلگ True بشه . يك فيلد ديگه به نام Counter كه هر بار كه اين ماشين فروخته مي شه يكي به اون اضافه بشه . به اين طريق مي شه فهميد كه يك ماشين چند بار فروخته شده .

یوسف زالی
دوشنبه 17 مرداد 1390, 22:25 عصر
دوست من اما با روش شما از کجا می شه فهمید بار اولی که خریداری شده بود با چه قیمتی بود؟
گرفتن جدول مجزا در اینجا لزومی نداره.

panahgah
سه شنبه 18 مرداد 1390, 14:44 عصر
جدول مجزايي در كار نيست . من فقط دو تا فيلد رو به جدول ماشينها اضافه كردم . جدول خريداران هم كه از جدول اتومبيل ها جداست . پس مشكلي وجود نداره .