مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

leily1

عضویت از 1394/06/22

درخواست کمک در طراحی دیتابیس

  • دوشنبه 27 شهریور 1396
  • 14:19
تشکر میکنم

سلام 

من می خوام یه پایگاه داده طراحی کنم جدول محصولات و وردی هر دو با جدول فروش رابطه یک به چند دارند ولی در جدول فروش من یا باید محصول ثبت بشه یا ورودی

با توجه به این که کلید اصلی محصول و ورودی هر دو باید در جدول فروش به عنوان کلید خارجی و NOTNALL باشند  چطور باید این شرط رو پیدا کنم که هر بار فقط یکی از کلید خارجی ها درج بشه ؟ آیا می تونم کلید خارجی رو در جدول فروش اختیاری کنم؟

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

lotfi1008

عضویت از 1394/07/06

  • دوشنبه 27 شهریور 1396
  • 16:35

امکان یکی کردن جدولهای محصول وروردی ها وجود نداره - میشه فیلدهاشون رو بزارید حداقل بفهمیم جدول ورودی ها چیه>؟

کاربر سایت

leily1

عضویت از 1394/06/22

  • دوشنبه 27 شهریور 1396
  • 17:07

نه متاسفانه مضوعشون کاملا جدا هست و به نظرم منطقی نیست یکی کردنشون

فیلدهای مهم ورودی : کد ورودی، تاریخ، نوع وردی، مقدار، نتیجه تست و....

فیلد های مهم محصول: کد سفارش، نام محصول تاریخ و ...

جدول محصول به واسطه یه جدول (ورودی- محصول) با جدول ورودی رابطه چند به چند داره

کاربر سایت

lotfi1008

عضویت از 1394/07/06

  • سه شنبه 28 شهریور 1396
  • 07:41

تنها راه حلی ک به ذهن من میرسه اینه یا جفتشونو قرار برین یا اینکه از یه جدول واسط دیگه استفاده کنید - می تونید از همون جدولی که ارتباط چند ب چند محصول و ورودی رو هندل کرده استفاده کنید

کاربر سایت

leily1

عضویت از 1394/06/22

  • سه شنبه 28 شهریور 1396
  • 08:07

ماجرا اینه که این شرکتی که دارم براشون برنامه رو می نویسم یا ورودی رو به محصول تبدیل می کنه بعد می فروشه و یا اینکه خود ورودی رو مستقیم می فروشه 

اگر قرار باشه جفتشون رو قرار بدم تو جدول فروش باید کلیدشون رو که تو جدول فروش به عنوان کلید خارجی قرار داره allownall  قرار بدم

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

کاربر سایت

lotfi1008

عضویت از 1394/07/06

  • سه شنبه 28 شهریور 1396
  • 08:20

چیزی که من تا اینجا فهمیدم اینه

من فرض میکنم که شما دو نوع موجودیت برای فروش دارید یکی که اسمش محصوله یکی هم ورودی که بنا به سیاست کاری شرکت ورودی می تونه تبدیل به محصول بشه می تونه تبدیلم نشه

با این حساب چند تا راه حل وجود داره این که

1- جدول های فروششون رو از هم جدا کنید

2- زخیره سازی جفتشون توی یه جدول

مورد اول که واضحه چجوریه 

مسئله شما مورد دومه ظاهرا و چون کلید جفتشون توی جدول فروشه نباید این فیلد null باشه با این حساب تنها کاری که به نظر من می تونید بکنید اینه :

کلید جفتشونو توی جدول فروش بزارید به صورت not null بعد برای فیلدهای کلید خارجی یک مقدار پیشفرض تنظیم کنید تا در صورت اینکه برای فروشهایی محصول نداشتیم یک مقدار ثابت قرار بگیره

دقت کنید ک اون مقدار ثابت رو باید در جدول محصولاتتون هم داشته باشین (یک رکورد در جدول محصول که نماینده تمام ورودی هایی هست که تبدیل به محصول نشده اند)

کاربر سایت

leily1

عضویت از 1394/06/22

  • سه شنبه 28 شهریور 1396
  • 08:30

واقعا ممنون از راهنماییتون

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)