طراحی دیتابیس چیست؟
فرایند تعیین جدولها، ستونها، روابط و Indexهای یک دیتابیس طوری که داده درست، بدون تکرار غیرضروری و با کارایی خوب ذخیره و خوانده شود.
چرا مهم است؟
طراحی ضعیف دیتابیس در ابتدای پروژه ممکن است تا مدتها کار کند، اما با رشد داده باعث ناسازگاری، کندی شدید Query و رفکتور پرهزینه بعدی میشود.
تعریف
طراحی دیتابیس یعنی تصمیمگیری درباره جدولها، نوع داده هر ستون، کلیدهای اصلی/خارجی، سطح نرمالسازی و Indexها — قبل از اینکه حجم واقعی داده مشکل را نشان دهد.
گامهای اصلی
- شناسایی موجودیتها (Entities) و رابطه بین آنها — یکبهیک، یکبهچند، چندبهچند.
- تعیین کلید اصلی (Primary Key) برای هر جدول.
- نرمالسازی تا حذف داده تکراری (معمولاً تا فرم نرمال سوم کافی است).
- تعیین Index روی ستونهای پرکاربرد در
WHERE/JOIN.
مثال رابطه چندبهچند
CREATE TABLE Orders (Id INT PRIMARY KEY, CustomerId INT);
CREATE TABLE Products (Id INT PRIMARY KEY, Name NVARCHAR(200));
CREATE TABLE OrderItems (
OrderId INT FOREIGN KEY REFERENCES Orders(Id),
ProductId INT FOREIGN KEY REFERENCES Products(Id),
Quantity INT,
PRIMARY KEY (OrderId, ProductId)
);
اشتباه رایج
❌ ذخیره چند مقدار در یک ستون با جداکننده کاما ("1,2,3") بهجای جدول رابطه جداگانه — Query و JOIN روی آن عملاً غیرممکن میشود.
منبع و مطالعه بیشتر
خلاصه
طراحی دیتابیس یعنی تعیین درست جدولها، روابط، کلیدها و Indexها قبل از رشد داده واقعی. نرمالسازی تا جایی که داده تکراری حذف شود، بدون افراط، بهترین نقطه شروع است. مرجع کامل: Microsoft Support و Microsoft Learn.
