کوئری‌های شما باید روی MySQL قابل اجرا باشند.


علی فرد جوانی است که چندین سال است که در محله‌ای در یکی از شهر‌ها سوپرمارکتی را می‌گرداند. او قصد دارد که در حرکتی جدید چندین شعبه برای خود ایجاد کند و محصولات خود را به‌صورت اینترنتی به‌فروش برساند. در اولین قدم، او تصمیم گرفته است تا دیتابیس فروشگاه آنلاین خود را طراحی کند. او این‌کار را کرده و به‌صورت تصویر زیر داده‌ها را نگه‌داری می‌کند:

db

اما همان‌طور که مشخص است، طراحی این دیتابیس اصلاً جالب نیست و افزونگی داده دارد.

در این سؤال، شما باید این دیتابیس را برای علی نرمال‌سازی کنید.

جزئیات پروژه

اطلاعات جدول موجود به‌صورت زیر است:

نام ستون نوع تعریف
m_id bigint AUTO_INCREMENT آی‌دی شعبه
m_name varchar(255) نام شعبه
m_address text آدرس شعبه
p_id bigint AUTO_INCREMENT آی‌دی محصول
p_name varchar(255) نام محصول
p_weight bigint وزن محصول
price bigint قیمت محصول
level int سطح شعبه
m_score bigint امتیاز شعبه
capacity bigint ظرفیت تعداد محصول مربوط به سطح شعبه

هم‌چنین توجه کنید که در جدول بالا m_id و p_id کلید هستند.

مطلوبات

تنها خواسته از شما در این سوال این است که جدول شکلی که در ابتدای سؤال آمده است را پس از نرمال‌سازی، فقط با استفاده از دستورات DDL ایجاد و ارسال کنید.

شما باید نرمال‌سازی را تا جایی ادامه دهید که هیچ‌کدام از وابستگی‌ها (dependencies) نقض نشوند.

تنها نکته‌ی مهم این سؤال، نام‌گذاری جداول است. باید طبق جدول زیر از نام هر یک از جداول که احتیاج دارید، استفاده کنید.

کلید نام جدول
شعبه‌ها markets
امتیازات scores
محصولات products
نام‌ها names
وزن‌ها weights
آدرس‌ها addresses
قیمت‌ها prices
ظرفیت‌ها capacities

نکات

  • دقت‌کنید که نیاز به استفاده از همه‌ی جداول ذکر شده در جدول بالا نیست و فقط باید از جداولی که به آن‌ها احتیاج دارید استفاده کنید.
  • تمام اطلاعات ستون‌ها (مانند نام و...) باید مشابه موارد ذکر شده در اول سؤال باشند و نباید تغییر کنند.
  • امکان NULL بودن در هیچ یک از ستون‌ها مجاز نیست.
  • کلیدهای خارجی باید به درستی ایجاد شوند (نام آن‌ها اهمیتی ندارد).

آن‌چه باید آپلود کنید

پس از طراحی کوئری‌ها، کد خود را در قالب یک فایل با پسوند .sql آپلود کنید.


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.