گشت و گذاری در دیتابیس نمونه در اس کیو ال سرور
در این قسمت با اولین دیتابیس نمونه در اس کیو ال سرور آشنا می شوید.
در شکل زیر ساختار (نمودار) دیتابیس BikeStores (فروشگاه دوچرخه) را می بینید.

همانطور که در شکل می بینید این دیتابیس دو schemas دارد و دارای 9 جدول است. (در فارسی این کلمه را هم اسکیما می گویند و هم شما Shema)
جداول دیتابیس
جدول 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)
);
توجه مهم : ما چون ایرانی هستیم و قراره که همه چیز را با زبان فارسی ذخیره کنیم ، باید به جای VARCHAR از NVARCHAR استفاده کنیم. بنده به هیچ وجه از فیلدهای char و varchar استفاده نمی کنم.
جدول sales.staffs
این جدول اطلاعات کارکنان را ذخیره می کند. اطلاعاتی از قبیل نام و نام خانوادگی و ایمیل و آدرس و ...
کارکنان در فروشگاهی کار می کنند که با store_id مشخص می شود. یک فروشگاه می تواند بین یک تا چند کارمند داشته باشد.
هر کارمندی گزارش کارش را به مدیرش ارائه می دهد که توسط manager_id مشخص می شود. اگر مقدار ستون manager_id خالی باشد یعنی آن کارمندخودش مدیر فروشگاه می باشد.
اگر کارمندی برای هیچ فروشگاهی کار نکند آنگاه مقدار فیلد Active صفر خواهد بود.
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
);