PDA

View Full Version : وارد کردن اطلاعات به database



amirA1989
چهارشنبه 30 آذر 1390, 11:25 صبح
سلام دوستان
من یک مشکلی دارم برای طراحی سایت سفارش آنلاین غذا
اینکه در DataBase دو تا جدول دارم که یکیش جدول غذاهاست که شامل شماره غذا و نام اون هست و دیگری جدول سفارشات که شامل شماره اشتراک مشتری و شماره سفارش و شماره غذا است که شماره غذا و شماره سفارش رو کلید در نظر گرفتم
حالا اگر مشتری بخواد از checkboxlist چندتا غذا رو انتخاب کنه اینجا خطا میده چون هر غذا باید یک سطر از جدول رو پر کنه در صورتی که اینطور نمیشه؟ ولی اگه به ازای هر انتخاب دکمه ثبت رو بزنم میشه که این کار درست نیستش..
اصلا این جدول بندی درست هستش؟
میشه کمکم کنید؟:ناراحت:

حمیدرضاصادقیان
چهارشنبه 30 آذر 1390, 11:53 صبح
سلام.
طراحی شما درسته. برای اینکار شما باید تمام رکوردها رو ذخیره کنید یعنی تمام انتخابهایی که کاربر میکنه رو داشته باشید بعد به صورت گروهی در دیتابیس اضافه کنید.
نحوه اضافه کردن گروهی در دیتابیس هم بارها مطرح شده که با جستجو میتونید پیدا کنید.

amirA1989
پنج شنبه 01 دی 1390, 17:28 عصر
مرسی از راهنماییتون.
یعنی شما میگین که اگه گروهی اضافه کنم مشکل حل میشه؟
این اضافه کردن گروهی ، راه حلش تو تالار sql هستش دوست عزیز؟ یا تالار Asp؟
میشه یه راهنمایی هم درباره این اضافه کردن گروهی اطلاعات به من بکنید؟
:افسرده:

computer _ student
پنج شنبه 01 دی 1390, 20:04 عصر
سلام دوستان
من یک مشکلی دارم برای طراحی سایت سفارش آنلاین غذا
اینکه در DataBase دو تا جدول دارم که یکیش جدول غذاهاست که شامل شماره غذا و نام اون هست و دیگری جدول سفارشات که شامل شماره اشتراک مشتری و شماره سفارش و شماره غذا است که شماره غذا و شماره سفارش رو کلید در نظر گرفتم
حالا اگر مشتری بخواد از checkboxlist چندتا غذا رو انتخاب کنه اینجا خطا میده چون هر غذا باید یک سطر از جدول رو پر کنه در صورتی که اینطور نمیشه؟ ولی اگه به ازای هر انتخاب دکمه ثبت رو بزنم میشه که این کار درست نیستش..
اصلا این جدول بندی درست هستش؟
میشه کمکم کنید؟:ناراحت:

به نظر من هم طراحی شما درست هست اما کلید اصلی جدول سفارش همون شماره سفارش هست و لازم نیست از کلید ترکیبی استفاده کنید
رابطه سفارش بین غذا و مشتری چند به چند هست در نتیجه رابطه "سفارش" را نیز به یک جدول تبدیل میکنید(همان کاری که شما کردید) و کلید اصلی هر دو طرف رابطه را به جدول سفارش اضافه می کنید حالا یا می توانید از کلید ترکیبی استفاده کنید که کمی سخت می شود یا اینکه یک فیلد با عنوان شماره سفارش به جدول سفارش اضافه کنید و از آن به عنوان کلید اصلی استفاده کنید.

حمیدرضاصادقیان
پنج شنبه 01 دی 1390, 23:28 عصر
یک راه استفاده از Table Value Parameter هست که در Stored Procedure ها استفاده می شود.
در واقع اطلاعات مانند یک جدول به Stored Procedure ارسال می شود و در انجا به دیتابیس اضافه می گردد.
میتونید دنبال واژه هایی مثل "ارسال جدول به عنوان پارامتر" و یا "آرسال گروهی اطلاعات" در همین تالار SQL Server بگردید.

rahmatr
جمعه 02 دی 1390, 00:42 صبح
سلام.
طراحی شما درسته.

به نظر من درست نیست.
شما باید 4 جدول داشته باشید.

مشتریان
غذاها
سفارشات
جزییات سفارش

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

computer _ student
جمعه 02 دی 1390, 15:00 عصر
به نظر من درست نیست.
شما باید 4 جدول داشته باشید.

مشتریان
غذاها
سفارشات
جزییات سفارش

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

چرا نیاز به جدول جزئیات سفارش داریم؟
کلیه اطلاعات مربوط به سفارش را در همان جدول سفارش ذخیره می کنیم. یعنی تنها از 3 جدول مشتری، غذا و سفارش استفاده می کنیم
آیا این کار جدول سفارش را آنرمال می کند؟ میشه توضیح بدید.
ممنون

rahmatr
جمعه 02 دی 1390, 15:47 عصر
هر سفارش ممکن است شامل چند غذا باشد. مثلا :
سفارش جدید داریم :
شماره اشتراک : 2134
غذاها :
1- کباب
2- جوجه
3- قیمه بادمجان

که به ازای این سفارش 1 رکورد در جدول سفارشات ثبت می شود و یک شماره سفارش تولید می شود. بعد 3 رکورد در جدول جزییات سفارش ثبت می شود.

حمیدرضاصادقیان
شنبه 03 دی 1390, 07:55 صبح
البته طراحی اشاره شده در پست 6 بهتر از اولی هست.چون در طراحی اولیه مشتریان و سفارشات و جزئیاتش در یک جدول ثبت شدند. من اشتباها فکر کردم جداول تفکیک هستند به همین خاطر نوشتم درسته وگرنه طراحی پست 6 صحیح است.

amirA1989
شنبه 03 دی 1390, 13:07 عصر
البته طراحی اشاره شده در پست 6 بهتر از اولی هست.چون در طراحی اولیه مشتریان و سفارشات و جزئیاتش در یک جدول ثبت شدند. من اشتباها فکر کردم جداول تفکیک هستند به همین خاطر نوشتم درسته وگرنه طراحی پست 6 صحیح است.

پس در اینصورت من باید یک جدول جزییات سفارش هم در نظر بگیرم که شامل شماره غذا و شماره سفارش هست که این دو کلید خارجی هستند.
درسته ؟
یعنی در واقع من 4 جدول دارم؟ مشتری سفارش غذا جزییات سفارش؟

حمیدرضاصادقیان
شنبه 03 دی 1390, 14:41 عصر
بله شما باید 4 جدول در نظر بگیرید.