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

Как вывести последние записи из двух таблиц и отсортировать их по дате, составил решение

(
SELECT bodykits.id, bodykits.date, bodykits.title, bodykits.photomini
FROM bodykits
WHERE
bodykits.allow='1'
)

UNION

(
SELECT disks.id, disks.date, disks.modeldisk, disks.photomini
FROM disks
WHERE
disks.allow='1'
)

ORDER BY date DESC
LIMIT 50


есть ли более простое решение?
  • Вопрос задан
  • 341 просмотр
Пригласить эксперта
Ответы на вопрос 3
KorroLion
@KorroLion
Такое чувство, что база данных спроектирована неверно.
Я правильно понимаю, что эти 2 сущности между собой не связаны? Тогда почему их нужно выводить одним запросом?
Если имеется ввиду, что bodykits и disks принадлежат к единой сущности товара, то данное решение немасштабируемо, т.к. придется для каждого нового товара заводить новую таблицу.
Для товаров я бы выделил общие свойства: id, date, photomini и вынес в отдельную таблицу с товарами.
Кастомные свойства всех товаров можно вынести в отдельную общую таблицу + сделать таблицу с описанием типов товаров.

Получится:
types - Возможные типы товаров: 1-bodykits; 2-disks (id, type)
goods - Перечисление всех товаров с привязкой к типу из types (id, type_id, date, photomini)
properties - Перечисление возможных свойств для типа (id, type_id, name_of_property)
values - Значение свойств для конкретного товара (id, good_id, property_id, value)

Там, где требуется вывести вывести разные типы товаров смешано выводить нужно только общие свойства из таблицы goods, т.к. и шаблон вывода скорее всего заточен на общие характеристики (которые есть у всех)
Ответ написан
Комментировать
@andreyk0 Автор вопроса
у каждой таблицы вынесено множество параметров которых может не быть в других таблицах, выносить все доп свой-ва всех таблиц в отдельную таблицу - тоже будет избыточность ячеек в виде 0 в каждой строке - так что правильность или не правильность - вопрос относительный. я решил что хранение данных в отдельных таблицах и практичнее и удобнее - чем соединять 3-5 таблиц для вывода каталога - т.к. помимо этих таблиц есть таблицы цветов, категорий, юзеров которым принадлежать записи в этих таблицах, а у юзеров есть города - поэтому такая конструкции самая оптимальная ) вот если бы было бы всего 2-3 таблицы может ваш метод был бы оптимальней )
Ответ написан
Комментировать
Такой запрос на мой взгляд будет очень полезен при выполнении поиска, в котором нужно искать в совершенно разных разделах сайта, которые между собой никак не связаны, и мне лично кажется что это достаточно нормальное и оптимальное решение.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы