|
289 / 34 / 6
Регистрация: 20.09.2011
Сообщений: 464
|
||||||
Выборка из нескольких таблиц БД18.02.2012, 15:00. Показов 1683. Ответов 4
Метки нет (Все метки)
Здраствуйте.
Такая ситуация. Есть база данных MySQL, в которой имеется около 20 таблиц, каждая из которых соответствует определенной категории. Структура этих таблиц одинакова:
Мне нужно на главной странице вывести список, состоящий из n последних записей. Проблема в том, что они могут быть раскиданы по разным таблицам. Дайте совет по решению этой проблемы ![]() P.S. Можно просматривать все 20 таблиц при выводе, но это ресурсоемкое занятие.
0
|
||||||
| 18.02.2012, 15:00 | |
|
Ответы с готовыми решениями:
4
Выборка из нескольких таблиц выборка с нескольких таблиц |
|
Исследователь
|
|
| 18.02.2012, 15:44 | |
|
А не проще переделать БД... Поскольку возникла такая проблема, то подозреваю, что она не правильно создана...
Чтобы не ждать ответа, на случай, если я прав, то лучше сразу переделать БД. Вот что я думаю... У этих 20 таблицах хранятся одинаковые данные, расбросаны по категориям... Для примера, в первой таблице уроки по программированию на Си, во второй - на С++, в третьей - по PHP и т. д. Это распостраненная ошибка новачков... Правильно сделать одну таблицу, в которую добавить поле категории... id | cat_id | ... | data И выборку будет сделать проще, и не будет нарушения правил
0
|
|
|
289 / 34 / 6
Регистрация: 20.09.2011
Сообщений: 464
|
|||
| 18.02.2012, 16:13 [ТС] | |||
![]() Также рассматривал такой вариант: создать отдельную таблицу "last_news" (из названия понятно) и выводть все из нее. Но в дальнейшем она может стьать довольно большой, поэтому придется удалять старые записи из нее, что скажется на функционале сайта. Рассматриваюто как запасной вариант.
0
|
|||
|
Исследователь
|
|
| 18.02.2012, 16:36 | |
|
Размышляю "вслух", может это натолкнет на мысль...
Как вариант, можно просматривать все 20 таблиц... Мда... Ресурсов это сожрёт не мало... Можно, конечно, выбрать n последних записей из каждой таблицы и уже из них выбрать n последних... Нет Хватит мучить ЭВМ...Создать еще одну таблицу, в которой хранить последние записи?.. Хм-м... Если в этой таблице хранить id и название таблицы с новостью, то она не так уж и сильно будет ресурсоемкой... а если её еще и переодически чистить, то дела пойдут не так уж и плохо... Оставим как вариант... А что, если где-то сохранять дату, меньше которой записи выводить не надо?.. Если будет эта дата, значит можно поочередно выбирать записи с таблиц, даты добавлений которых больше и, отсортировав их по дате, выводить... Проблема теперь вырисовывается с определением самой меньшей даты... Не думаю, что это удачная идея... А что, если сделать id уникальным полем для всех таблиц, а не для одной?.. Хех... Таким образом, последние записи будут с самыми большими id... Но опять же проблема, с поиском самого большого id... Придется где-то его хранить... Куки и сессии для этого не подходят, это однозначно... Создавать еще одну таблицу для самого большого id? Таблицу с одним полем... А смысл? Ладно, допустим, что мы где-то сохранили (или как то определили) самый большой id... Определить все id можно, если записи не удалялись... Если несколько полей выпадут, значит простым вычитанием ничего хорошего мы не получим... Придется где-то хранить еще и записи, которые удалили... Слишком много мучений... Вот моё краткое мнение по поводу решения поставленой задачи... Может они подтолкнут Вас на какую то мысль
1
|
|
|
289 / 34 / 6
Регистрация: 20.09.2011
Сообщений: 464
|
|||
| 18.02.2012, 17:21 [ТС] | |||
|
Хех, спасибо
Вот мои мысли по этому поводу.Пока идея с созданием новой таблицы является наиболее актуальной для меня. Но все равно продолжаю поиски вариантов.
0
|
|||
| 18.02.2012, 17:21 | |
|
Помогаю со студенческими работами здесь
5
Выборка из нескольких таблиц, связанных по ID Выборка из нескольких таблиц с JOIN Выборка одновременно из нескольких таблиц с сортировкой
Выборка из нескольких таблиц БД для поиска на сайте Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|