dalmariko
@dalmariko
Ни рыба ни мясо. Програмясо

Как правильно организовать базу данных для Галереи?

Доброго времени суток. У меня есть такой вопрос. Мне нужно оптимизировать запрос с выборкой значений по лимиту.

или подсказка как спроектировать БАЗУ. Для того что бы было можно было записать текст для события и фотографии к событию.

Это нужно для вставки всех картиок по определенному evrnt_id И разделение вывода на страници.

Входные данные.

CREATE TABLE `SRC`(
`id` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY UNIQUE ,
`event_id` int(10) NOT NULL ,
`src` VARCHAR(55) NOT NULL ,
`alternate` VARCHAR(20) NOT NULL,
FOREIGN KEY (event_id) REFERENCES TEXTS(id)
)ENGINE = MyISAM DEFAULT CHARSET =utf8 COLLATE = utf8_unicode_ci;

CREATE TABLE `TEXTS`(
`id` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY UNIQUE ,
`big_text` VARCHAR(200) NOT NULL ,
`small_text` VARCHAR(80) NOT NULL ,
`datetime` DATETIME NOT NULL
)ENGINE = MyISAM DEFAULT CHARSET =utf8 COLLATE = utf8_unicode_ci;
К этим таблицам запрос такого рода.

SELECT t.id,s.src,s.alternate,t.small_text,t.datetime FROM TEXTS as t
INNER JOIN SRC s ON s.event_id=t.id
INNER JOIN (SELECT id FROM TEXTS ORDER BY id LIMIT 3 OFFSET 14) t2
ON t.id=t2.id;
5a34361783e70204874293.png

Вот запрос номер 2

SELECT t.id,s.src,s.alternate,t.small_text,t.datetime FROM TEXTS as t
INNER JOIN SRC s ON s.event_id=t.id WHERE event_id=3;
вот его EPLAIN

5a34362bd31f8615930152.png

Вот нужно ли делать 3 таблицу или можно так обойтись и как ускорить запрос .

Вот собственно сам вопрос как добиться того что бы небыло прочитанно 17 строк и выведено все что нужно, а выводилось конкретно от 14 id таблици TEXTS. В общем ускорить запрос, но что бы было разделение по 3 event_id.

Возможно тут дело в организации стуктуры базы нужен совет. Заранее спасибо.
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы