Как правильно организовать структуру БД?

dirol

Новичок
Как правильно организовать структуру БД?

На данный момент есть две таблицы:
art-cat
art

Таблица art-cat содержит следующие поля:
1. idcat
2. namecat

Таблица art содержит следующие поля:
1. idart
2. idcat (записывается в базу, исходя из данных полученных из таблицы art-cat)
3. nameart
4. fullart

При работе с запросами, постоянно приходится работать с данными из таблицы art, но при этом необходимо забирать из базы значения поля namecat таблицы art-cat

Есть ли смысл перенести поле namecat в таблицу art, чтобы особо не нагружать скрипт запросами к бд?
 

Ermitazh

Новичок
dirol
я думаю что грамотно составленые запросы никак не нагрузят бд и что смысла переносить нет.
 

dirol

Новичок
а как тогда грамотно составить запрос выборки данных из этих двух таблиц?

Сейчас есть:
SELECT * FROM `art` LIMIT 0,10

т.е. выбираем 10 строк из таблицы art, которые отображаются следующим образом:

nameart<br>
fullart

А нужно, чтобы отображение было следующим:

namecat<br>
nameart<br>
fullart

Пытался составлять различные запросы, данные берутся из двух таблиц, но подставляются куда попало. Т.е. значение namecat не соответствует действительности
 

octan

Новичок
SELECT ac.namecat,
a.nameart,
a.fullart
FROM art_cat as ac,
art as a
WHERE ac.idcat = c.idcat

и не надо использовать JOIN, это загружает бызу данных при больших объемах данных
 

octan

Новичок
berkut

это еквивалентно
FROM cats c,
domains d

просто мне так удобнее (до этого работал на оракле)
 

Андрейка

Senior pomidor developer
octan
тебя не про AS спрашивали вообще-то, а о запятой между "cats c" и "domains d".. че она ваще делает?
 

octan

Новичок
Beavis
Андрейка
и то по вашему нужно использовать для разделения двух разных таблиц в запросе? Документацию читали по MySQL?

"SELECT t1.name, t2.salary FROM employee AS t1, info AS t2
WHERE t1.name = t2.name;"
 

Андрейка

Senior pomidor developer
octan
нет, куда нам в чтении документации по MySQL тягаццо с оракловским спецом..(((
 

berkut

Новичок
octan
тебе бо самому доку почитать.
INNER JOIN and , (comma) are semantically equivalent in the absence of a join condition: both produce a Cartesian product between the specified tables (that is, each and every row in the first table is joined to each and every row in the second table).
[sql]SELECT t1.name, t2.salary FROM employee AS t1, info AS t2
WHERE t1.name = t2.name[/sql]
===
[sql]SELECT t1.name, t2.salary FROM employee AS t1
INNER JOIN info AS t2 ON t1.name = t2.name[/sql]
 

octan

Новичок
нет, куда нам в чтении документации по MySQL тягаццо с оракловским спецом..(((
а это зачем? Если я написал чтото не правильно то исправь меня, а если все правильно, тогда зачем такие коменты. Я думаю они не помогут автору вопроса его решить.
 

berkut

Новичок
а тебе и написали, что ты не прав, а ты пяткой в грудь, всех в маны в грубой форме тыкаешь, о гуру дба, оракул хренов. автору вопроса явно не помогут кАмменты типа джоин - тормоз, юзай запятые
 

Ermitazh

Новичок
автору вопроса помочь сможет только он сам, если поймёт как запрос должен работать в классическом виде...
 
Сверху