Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проектирование бд  [new]
Bayer_Linse
Member

Откуда:
Сообщений: 3
Курсовой проект. В бд надо создать таблицу грузовых и пассажирских самолетов. Получилось следующее:

CREATE TABLE [Airplain]
(
AirplainID int IDENTITY(1,1) NOT NULL PRIMARY KEY,
AirplainName char(50) UNIQUE NOT NULL,
Passengers int NOT NULL,
Fuel int NOT NULL,
Range int NOT NULL,
Freight int NOT NULL,
isFreighter bit NOT NULL DEFAULT 0
)
GO

ALTER TABLE [Airplain]
ADD CONSTRAINT Check_Airplain CHECK ((Passengers>0 and Fuel>0 and Freight>0) or (Passengers=0 and isFreighter=1))
GO

Стоит ли из этой таблицы сделать две, отдельно пассажирские самолеты, отдельно грузовые. Или три: общая информация о самолете и по типу самолета пассажирские самолеты и грузовые самолеты. Соответственно пропадет условие Passengers=0 and isFreighter=1.

Какой вариант предпочтительнее?
17 июн 03, 23:34    [233013]     Ответить | Цитировать Сообщить модератору
 Re: Проектирование бд  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1873
если различия в описаниях характеристик разных типов незначительные
можно оставить одну таблицу различия типы по какому либо полю
типа AirplainType
в противном случае сделать общий реестр
AirplainID, AirplainType и различные таблицы описаний под типы
18 июн 03, 06:39    [233053]     Ответить | Цитировать Сообщить модератору
 Re: Проектирование бд  [new]
Роман Дынник
Member

Откуда:
Сообщений: 3324
Теоритически правильнее 3 таблицы:
-абстрактный самолет
-пассажирский самолет(наследник абстрактного самолета)
-грузовой самолет(наследник абстрактного самолета)

Так как это учебное задание, лучше избрать этот вариант, оценка выше будет :)
18 июн 03, 10:15    [233231]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить