Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте!
Иерархия такая: Марка->Модель->Модификация->Тачка
Пишу в самом простом пимере:
1. Таблица МАРКИ // напр., Mercedes
CREATE TABLE Marks(
mark_id int(10) auto_increment,
mark_name varchar(32),
PRIMARY_KEY(mark_id);
)
2. Таблица МОДЕЛИ // напр., E-240
CREATE TABLE Models(
model_id int(10) auto_increment,
model_name varchar(32),
mark_id int(10), // указывает, к какой марке привязана данная модель
PRIMARY_KEY(model_id);
)
3. Таблица МОДИФИКАЦИИ // напр., W210, W211, W212 и т.д.
CREATE TABLE Modfs(
modf_id int(10) auto_increment,
modf_name varchar(32),
model_id int(10), // указывает, к какой моделе привязана данная модификация
mark_id int(10), // указывает, к какой марке привязана данная модификация
// или здесь лишь model_id достаточно, ведь по ней мы можем и марку определить?
PRIMARY_KEY(modf_id);
)
4. Таблица ТАЧКИ // конечное звено, напр., Mercedes E240 (W212)
CREATE TABLE Cars(
car_id int(10) auto_increment,
........ здесь идуи характеристики, цена, цвет, пробег и т.д.........
modf_id int(10), // указывает, к какой модицикации привязана данная тачка
model_id int(10), // указывает, к какой моделе привязана данная тачка
mark_id int(10), // указывает, к какой марке привязана данная тачка
// или здесь лишь modf_id достаточно, ведь по ней мы можем модель, а по модели и марку определить?
PRIMARY_KEY(car_id);
)
Если бы всё обстояло именно так, то запрос на выборку всех тачек был бы:
SELECT t1.car_id, t2.mark_name, t3.model_name, t4.modf_name FROM Cars as t1, Marks as t2, Models as t3, Modf as t4 WHERE t1.mark_id=t2.mark_id AND t1.model_id=t3.model_id AND t1.modf_id=t4.modf_id
Если кто запутался, напишу вкратце (без модификации, в 3 таблицах):
Marks:
mark_id | mark_name
Models:
model_id | model_name | mark_id
Cars:
car_id | mark_id | model_id
или
car_id | model_id
Как грамотнее и быстродейственнее?
Отредактированно alexander666 (21.11.2012 21:37:52)
Неактивен
Вопрос в том нужны ли отдельные модификаторы для марки/модели (// или здесь лишь modf_id достаточно, ведь по ней мы можем модель, а по модели и марку определить) ?
Зависит от ваших запросов. Например, если вы будете искать все мерседесы зеленого цвета, то нужны.
Неактивен
vasya написал:
Вопрос в том нужны ли отдельные модификаторы для марки/модели (// или здесь лишь modf_id достаточно, ведь по ней мы можем модель, а по модели и марку определить) ?
Зависит от ваших запросов. Например, если вы будете искать все мерседесы зеленого цвета, то нужны.
http://sqlinfo.ru/forum/viewtopic.php?pid=35374#p35374 - вам не подойдёт?
Неактивен