2013-10-01 5 views
0

Я хочу знать, насколько я настроил эту схему базы данных наиболее эффективным способом. Я пытаюсь вывести сноубордическую терминологию и что это означает для каждого продукта на моем сайте. Таблицы, которые я создал для этого:Настройка базы данных базы данных MySQL

продукты

+----+--------+--------+-------------+ 
| id | brand | name | product_type| 
+----+--------+--------+-------------+ 
|8000| burton | diode | binding  | 
+----+--------+--------+-------------+ 

terminology_products

+----+--------+------------+ 
| id | att_id | product_id | 
+----+--------+------------+ 
| 1 | 51  | 8000  | 
| 2 | 52  | 8000  | 
+----+--------+------------+ 

терминология

+--------+-----------+--------+---------------------+ 
| att_id | type | key | value    | 
+--------+-----------+--------+---------------------+ 
| 52 | baseplate | EST | details about EST | 
| 53 | baseplate | Hinge | details about Hinge | 
+--------+-----------+--------+---------------------+ 

Тогда я запрашиваю

SELECT products.ProductName, products.Brand, terminology.type, terminology.key, terminology.value 
FROM products 
JOIN terminology_products 
ON terminology_products.product_id = products.ID 
JOIN terminology 
ON terminology_products.att_id = terminology.att_id 
WHERE products.id = 8000 

И получить результаты, которые я ищу, но я чувствую, что это может быть сложнее. Есть ли более простой способ? Спасибо за понимание или помощь.

+0

выглядит «стандартным» для меня. и это ралли принадлежит codereview –

+0

Я никогда не слышал о codereview, разве это отдельно от этого сайта? –

+0

http://codereview.stackexchange.com/ –

ответ

1

Да, это правильный путь. Это обычное решение.

В таблице «terminology_products» содержатся внешние ключи, и это позволяет вам связывать «многие-многие» между таблицами.

Смежные вопросы