Доброго времени суток всем.
Делаю маленькую базу для доски обхъявлений.
Существует объявление у него есть идентификатор и прочие атрибуты, включая имя категории и имя раздела.
Существует справочник с категориями, 2 категории могу быть с одинаковыми именами, но должны быть в разных разделах.
В таблице с разделами имя раздела должно быть уникальным
Мне кажется я не правильно связал таблицы, что можно было решить более рационально.
Все ли правильно?
Спасибо.
CODE ( SQL):
скопировать код в буфер обмена
CREATE TABLE parts( name VARCHAR(20) NOT NULL, description TEXT NOT NULL, CONSTRAINT pkIdParts PRIMARY KEY(name) ); CREATE TABLE category( name VARCHAR(20) NOT NULL, part VARCHAR(20) NOT NULL, CONSTRAINT pkIdCat PRIMARY KEY(name,part), CONSTRAINT fkCatagoryPart FOREIGN KEY(part) REFERENCES parts(name) ); CREATE TABLE ads( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(20) NOT NULL, text TEXT NOT NULL, cat VARCHAR(20) NOT NULL, part VARCHAR(20) NOT NULL, email VARCHAR(20) NOT NULL, fio VARCHAR(50) NOT NULL, CONSTRAINT pkIdAds PRIMARY KEY(id), CONSTRAINT fkAdsCat FOREIGN KEY(cat,part) REFERENCES category(name,part) );
|