PDA

View Full Version : سوال: کمک در مورد طراحی خدمات برنامه (جدول و روابط)



mortezasar
یک شنبه 19 مرداد 1393, 15:41 عصر
سلام دوستان من یک برنامه دارم می نویسم اما برای جدول خدماتش به مشکل بر خوردم ستون جدول ها رو می نویسم تا بهتر بتونم توم توضیح بدم

نوع خدمات - اندازه - تعداد - قیمت

چاپ بنر - 170*100-1- 20000

چاپ بنر - 100*70-1- 15000

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

جدول خدمات :
نام خدمات - کد خدمات

جدول اندازه :
کد خدمات - اندازه - کد اندازه

جدول تعداد :
کد تعداد - تعداد - واحد

جدول واحد :
کد واحد - نام واحد

جدول قیمت :
کد خدمات - کد اندازه - کد تعداد - قیمت - کد قیمت

parvizwpf
یک شنبه 19 مرداد 1393, 17:50 عصر
اگه ارتباطات بین تمام اطلاعات رو پوشش میده و همه میتونن با کوئری معادلهای هم رو بیارن احتمالا دیگه مشکلی نیست.

veniz2008
یک شنبه 19 مرداد 1393, 20:57 عصر
سلام.
چند نکته رو خدمتتون عرض میکنم :
اول اینکه با این توضیحاتی که شما دادید نمیشه راهنمایی خاصی کرد چون واقعا نمی دونیم سیستم شما قراره چه امکاناتی رو داشته باشه و چه ویژگی هایی رو در اختیار کاربر نهاییش قرار بده. اینکه قراره چه گزارش هایی رو به کاربر بده و آیا این طراحی ها می تونه جوابگوی همه این مسائل باشه یا نه. بهترین شخص برای تصمیم گیری خود شما هستید که بیشترین شناخت رو از سیستم باید داشته باشید.
بنابراین جواب های زیر جواب های کلی هستند که باید تحلیلشون کنید ببینید واسه مقصود شما مناسب هست یا نه.
مورد بعدی اینکه برای تفکیک جداول باید دلیل منطقی وجود داشته باشه نه اینکه هر چیزی رو بگیم بشه یه جدول.
شما یه موجودیت به نام خدمات دارید :
1.کد خدمت (کلید)، 2.نام خدمت، اندازه (عجله نکنید! این سومی رو نباید اینجا بیارید). چون اندازه ها متفاوت هستن و در واقع صفتی دارید که چند مقداری هستش. بایستی یه جدول جداگانه براش ایجاد کنید و گرنه باعث ایجاد افزونگی میشه. مثلا شما خدمتی دارید بعنوان چاپ بنر که در سایزها (اندازه های) متفاوتی انجام میشه.
موجودیت دوم (موجودیت ضعیف) که در واقع وابسته به موجودیت بالایی هستش می تونه شامل صفتهای زیر باشه :
1.کد خدمت، 2.اندازه (دو صفت اول با هم کلید اصلی شما خواهند بود یعنی اینجا کلید ترکیبی دارید)، 3.قیمت واحد . مثلا : چاپ بنر، 100 * 170 ، 20000 یا چاپ بنر، 100 * 70، 15000(در اینجا نباید تعداد رو ذکر کنید. تعداد، صفتی هست که مربوط به رابطه فروش خواهد بود نه صفتی برای جزییات یک محصول).
می تونید برای اندازه ها تون (مخصوصا اگر اندازه هاتون مشخص و ثابت هستن) از یک جدول جداگانه استفاده کنید با صفت های 1.کد اندازه، 2.اندازه مثلا : کد1 ، 100*170 یا کد1، 70*100 و در موجودیت دوم به جای اندازه از کد اندازه استفاده کنید ولی اگر اندازه های متفاوتی دارید که از قبل مشخص نیست (هر اندازه ای می تونه باشه) می تونید از این جدول صرفه نظر کنید چون ضرورتی به بودنش نیست و مستقیما اندازه رو داخل موجودیت دوم قرار بدید.
حالا باید برای فروش هم جداول مورد نیازتون رو داشته باشید که حداقل دو جدول زیر رو نیاز دارید :
جدول فاکتور شامل حداقل صفت های : 1. شماره فاکتور (کلید)، 2.تاریخ صدور، 3.نام خریدار، 4. نام فروشنده (یا کد فروشنده) (اگر چندین کاربر از این سیستم استفاده می کنند)، کد خدمت (عجله نکنید!. در اینجا باز هم چون یک فاکتور ممکنه شامل چندین قلم کالای خریداری شده باشه باز هم با صفت های چند مقداری روبرو هستید که آوردنش اینجا باعث ایجاد افزونگی میشه) بنابراین نیاز به یک جدول دیگه دارید که ریز فروش رو درونش قرار بدید یعنی باید مشخص کنید برای هر فاکتور، چه کالاهایی فروخته شده. این جدول هم می تونه حداقل شامل این فیلدها باشه :
1.شماره فاکتور، 2.کد خدمت (دو فیلد اول با هم کلید اصلی خواهند بود)، 3.تعداد فروش، 4.قیمت واحد (در این جدول قیمت کل نباید بیاد چون صفت مشتق هست و از روی فیلدهای تعداد * قیمت واحد باید محاسبه بشه. همچنین دلیل اینکه در این جدول دوباره قیمت واحد ذکر شده(با وجود اینکه قبلا در جدول جززیات خدمت ذخیره شده) اینه که این قیمت ها ممکنه روزانه یا هفتگی یا ... تغییر کنه و شما باید هر فروشی رو که انجام می دید، قیمت همون لحظه رو هم ثبت کنید تا بعدا در گزارش گیری های مالی دچار مشکل نشید).
بازم میگم که این یه دید ساده و ابتدایی بود و باید ببینید که آیا این موارد برای پروژه و سیستم شما مناسب هست یا باید تغییراتی رو در اون انجام بدید. مخصوصا روی دو جدول مربوط به فروش زیاد دقت کنید. مثلا ایا درصد تخفیف میخواید بدید یا نه و ...
موفق باشید.