Я создал таблицу для лодки, которая содержит следующие столбцы: BName, Type, Price, OName
.Многозначный столбец в SQL
Однако колонка Type
должна быть одной из следующих: Парусник, плавучий дом или палуба.
Как я могу отразить это в инструкции create table. Я искал об этом, и я пришел с этим утверждением, которое я не уверен, правильно ли это или нет:
CREATE TABLE Boat
(
BName varchar(255),
BType int,
Price double,
OName varchar(255),
PRIMARY KEY (BName),
FOREIGN KEY (BType) REFERENCES BoType(ID)
);
CREATE TABLE BoType
(
ID int PRIMARY KEY,
Type varchar(255)
)
Это лучший способ сделать это?
Выглядит неплохо. Если некоторые из ваших данных можно рассматривать как отдельный объект (в вашем случае тип лодки), то это обычный способ сохранить его в отдельной таблице и создать внешний ключ для обеспечения согласованности. –
Единственное, что я бы изменил, это изменить тип 'int' вашего PK на' BoType' на 'tinyint' и то же для' BType' на 'Boat'. Это позволит сэкономить 3 байта на строку. Ответ FoggyDay также работает, но если вы начнете использовать больше типов лодок, он получит cumbersum – JRLambert
Tinyint не является типом данных ANSI/ISO SQL. Stick с целым числом. Также добавьте уникальные ограничения, например, для типа лодки. Возможно, NOT NULL - хорошая идея для некоторых столбцов. – jarlh