پایگاه داده نمونه SQL Server
خلاصه: در این آموزش، شما با نمونه پایگاه داده SQL Server به نام BikeStores آشنا خواهید شد.
به گزارش اپست به نقل از sqlservertutorial ، شکل زیر نمودار پایگاه داده BikeStores را نشان می دهد:

جداول پایگاه داده
میز فروش.فروشگاه ها
جدول sales.stores شامل اطلاعات فروشگاه است. هر فروشگاهی دارای یک نام، اطلاعات تماس مانند تلفن و ایمیل و یک آدرس شامل خیابان، شهر، استان و کد پستی است.
CREATE TABLE sales.stores (
store_id INT IDENTITY (1, 1) PRIMARY KEY,
store_name VARCHAR (255) NOT NULL,
phone VARCHAR (25),
email VARCHAR (255),
street VARCHAR (255),
city VARCHAR (255),
state VARCHAR (10),
zip_code VARCHAR (5)
جدول sales.staffs
جدول sales.staffs اطلاعات ضروری کارمندان از جمله نام کوچک، نام خانوادگی را ذخیره می کند. همچنین حاوی اطلاعات ارتباطی مانند ایمیل و تلفن است.
یک کارمند در فروشگاهی کار می کند که توسط مقدار ستون store_id مشخص می شود. یک فروشگاه می تواند یک یا چند کارمند داشته باشد.
هر کارمند به مدیر فروشگاهی که مقدار آن در ستون manager_id مشخص شده است، گزارش می دهد. اگر مقدار manager_id خالی باشد، آن کارمند مدیر ارشد است.
اگر کارمندی دیگر برای هیچ فروشگاهی کار نمی کند، مقدار ستون فعال روی صفر تنظیم می شود.
)CREATE TABLE sales.staffs
staff_id INT IDENTITY (1, 1) PRIMARY KEY,
first_name VARCHAR (50) NOT NULL,
last_name VARCHAR (50) NOT NULL,
email VARCHAR (255) NOT NULL UNIQUE,
phone VARCHAR (25),
active tinyint NOT NULL,
store_id INT NOT NULL,
manager_id INT,
FOREIGN KEY (store_id)
REFERENCES sales.stores (store_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (manager_id)
REFERENCES sales.staffs (staff_id)
ON DELETE NO ACTION ON UPDATE NO ACTION
(;
جدول production.categories
جدول «production.categories» دستههای دوچرخه را مانند دوچرخههای کودکان، دوچرخههای راحت و دوچرخههای برقی ذخیره میکند.
)CREATE TABLE production.categories
category_id INT IDENTITY (1, 1) PRIMARY KEY,
category_name VARCHAR (255) NOT NULL
(;
جدول production.brands
جدول production.brands اطلاعات نام تجاری دوچرخه ها را ذخیره می کند، به عنوان مثال، Electra، Haro، و Heller.
brand_id INT IDENTITY (1, 1) PRIMARY KEY,
brand_name VARCHAR (255) NOT NULL
);
جدول production.products
جدول production.products اطلاعات محصول مانند نام، برند، دسته بندی، سال مدل و قیمت لیست را ذخیره می کند.
هر محصول به برندی تعلق دارد که توسط ستون brand_id مشخص شده است. بنابراین، یک برند ممکن است هیچ یا چندین محصول داشته باشد.
هر محصول همچنین به یک دسته تعلق دارد که توسط ستون category_id مشخص می شود. همچنین، هر دسته ممکن است هیچ یا چندین محصول داشته باشد.
CREATE TABLE production.products (
product_id INT IDENTITY (1, 1) PRIMARY KEY,
product_name VARCHAR (255) NOT NULL,
brand_id INT NOT NULL,
category_id INT NOT NULL,
model_year SMALLINT NOT NULL,
list_price DECIMAL (10, 2) NOT NULL,
FOREIGN KEY (category_id)
REFERENCES production.categories (category_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (brand_id)
REFERENCES production.brands (brand_id)
ON DELETE CASCADE ON UPDATE CASCADE
);
جدول sales.customers
جدول sales.customers اطلاعات مشتریان را شامل نام، نام خانوادگی، تلفن، ایمیل، خیابان، شهر، استان و کد پستی ذخیره می کند.
CREATE TABLE sales.customers (
customer_id INT IDENTITY (1, 1) PRIMARY KEY,
first_name VARCHAR (255) NOT NULL,
last_name VARCHAR (255) NOT NULL,
phone VARCHAR (25),
email VARCHAR (255) NOT NULL,
street VARCHAR (255),
city VARCHAR (50),
state VARCHAR (25),
zip_code VARCHAR (5)
);
جدول sales.orders
جدول sales.orders اطلاعات سربرگ سفارش فروش را شامل مشتری، وضعیت سفارش، تاریخ سفارش، تاریخ مورد نیاز و تاریخ ارسال را ذخیره می کند.
همچنین اطلاعات مربوط به محل ایجاد تراکنش فروش (فروشگاه) و شخصی که آن را ایجاد کرده است (کارمند) را ذخیره می کند.
هر سفارش فروش یک ردیف در جدول sales_orders دارد. هر سفارش فروش شامل یک یا چند قلم کالاست که در جدول sales.order_items ذخیره می شود.
CREATE TABLE sales.orders (
order_id INT IDENTITY (1, 1) PRIMARY KEY,
customer_id INT,
order_status tinyint NOT NULL,
— Order status: 1 = Pending; 2 = Processing; 3 = Rejected; 4 = Completed
order_date DATE NOT NULL,
required_date DATE NOT NULL,
shipped_date DATE,
store_id INT NOT NULL,
staff_id INT NOT NULL,
FOREIGN KEY (customer_id)
REFERENCES sales.customers (customer_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (store_id)
REFERENCES sales.stores (store_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (staff_id)
REFERENCES sales.staffs (staff_id)
ON DELETE NO ACTION ON UPDATE NO ACTION
);
جدول sales.order_items
جدول sales.order_items اقلام سفارش فروش را ذخیره می کند. هر قلم به یک سفارش فروش خاص تعلق دارد که با ستون order_id مشخص می شود.
یک قلم فروش سفارش شامل محصول، مقدار سفارش، قیمت فهرست و تخفیف است.
CREATE TABLE sales.order_items(
order_id INT,
item_id INT,
product_id INT NOT NULL,
quantity INT NOT NULL,
list_price DECIMAL (10, 2) NOT NULL,
discount DECIMAL (4, 2) NOT NULL DEFAULT 0,
PRIMARY KEY (order_id, item_id),
FOREIGN KEY (order_id)
REFERENCES sales.orders (order_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (product_id)
REFERENCES production.products (product_id)
ON DELETE CASCADE ON UPDATE CASCADE
);
جدول production.stocks
جدول production.stocks اطلاعات موجودی انبار را ذخیره می کند، به این معنی که مقدار یک محصول خاص را در یک فروشگاه خاص نشان می دهد.
CREATE TABLE production.stocks (
store_id INT,
product_id INT,
quantity INT,
PRIMARY KEY (store_id, product_id),
FOREIGN KEY (store_id)
REFERENCES sales.stores (store_id)
ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (product_id)
REFERENCES production.products (product_id)
ON DELETE CASCADE ON UPDATE CASCADE
);
اکنون، شما باید با نمونه پایگاه داده BikeStores آشنا باشید و آماده بارگذاری آن در SQL Server باشید.