Я разрабатываю сайт, где люди могут публиковать свои дома в аренду.Я использую php 5.2.0 и MySQL 5 +
публикации хранятся в такой таблице
ta_publications
+---+-------------+------+
|id | name | date |
+---+-------------+------+
| 1 | name_001 | ... |
| 2 | name_002 | ... |
| 3 | name_003 | ... |
+---+-------------+------+
У меня есть разные публикации, в которых есть такие «функции», как «Интернет»"," made service "," спутниковое телевидение "и т. д.
Эти функции могут измениться в будущем, и я хочу иметь возможность добавлять / удалять / изменять их, поэтому я сохраняю их в базе данных втаблица.
ta_features
+---+-------------+
|id | name |
+---+-------------+
| 1 | Internet |
| 2 | Wi-Fi |
| 3 | satelital tv|
+---+-------------+
, которые связаны с публикациями, использующими следующую таблицу
ta_publication_features
+---+-------------+----------------+
|id | type_id | publication_id |
+---+-------------+----------------+
| 1 | 1 | 1 |
| 2 | 2 | 1 |
| 3 | 3 | 1 |
+---+-------------+----------------+
Я думаю, что это довольно легко понять;Существует публикация под названием name_001, в которой есть Интернет, Wi-Fi и спутниковое телевидение.
У меня одна и та же схема данных для изображений, я храню их в этой таблице
ta_images
+---+-------------+
|id | src |
+---+-------------+
| 1 | URL_1 |
| 2 | URL_2 |
| 3 | URL_3 |
+---+-------------+
Ииспользуйте следующую таблицу, чтобы связать их с публикациями
ta_publication_images
+---+-------------+----------------+----------+
|id | img_id | publication_id | order |
+---+-------------+----------------+----------+
| 1 | 1 | 1 | 0 |
| 2 | 2 | 1 | 1 |
| 3 | 3 | 1 | 2 |
+---+-------------+----------------+----------+
. Порядок столбцов дает порядок, в котором публикации должны отображаться при перечислении одной публикации.
Филипп Рейхарт предоставил мне запросэто будет искать и получать все публикации, которые имеют определенные функции.Он работает для перечисления публикаций, я не могу изменить его, чтобы он возвращал мне нужные мне данные.
Поэтому я решил, что я выполню этот запрос и получу все публикации, которые соответствуют критериям поиска, а затем используюеще один запрос для их перечисления.
Список этих публикаций должен включать все данные публикации (все в ta_publications) + все ее особенности + самое важное (порядок 0) изображение.
Iможет иметь для каждой публикации два простых запроса, которые будут возвращать отдельно самое важное изображение и все функции, которые он имеет, но при перечислении 25 публикаций на странице это будет 1 поисковый запрос + (2 запроса на публикацию * 25публикаций) = 51 различных запросов, явно не очень эффективных.
РЕДАКТИРОВАТЬ:
Мой вопрос состоит в том, как я могу создать запрос SQL, который при некоторых идентификаторах публикации будет возвращать: все данные публикации(все в ta_publications) + все его особенности + самое важное (порядок 0) image src