ВЫБРАТЬ ИЗ 100 таблиц в 1 базе данных

Я пытаюсь ВЫБРАТЬ идентификатор, описание, заголовок ИЗ table1, table2, table100

Скажем, у меня это работает, мне лучше просто объединить все мои таблицы в phpmyadmin?

Проблема в том, что у меня есть около 100 таблиц разных категорий книг, поэтому я хочу, чтобы они были разделены на отдельные таблицы.

Я пытаюсь создать поисковую систему, которая выполняет поиск по всем книгам во всей базе данных. Все таблицы имеют одинаковые имена столбцов.

Так что на самом деле все, что я действительно пытаюсь сделать, это искать во всей таблице базы данных идентификатор, описание, заголовок. Мой поиск работает, просто я могу искать только в одной таблице, и каждое решение в Интернете, которое я нашел, действительно эффективно работает только с двумя или тремя таблицами.

Заранее спасибо.

Думаю, у тебя плохой дизайн. Поместите их все в одну таблицу и добавьте новый столбец с именем category. Ваша жизнь станет проще.

vaso123 06.12.2018 07:36

Да, вы правы, в этом есть смысл, спасибо.

user3521712 06.12.2018 07:37

Нашел этот ответ stackoverflow.com/questions/14931001/…

skinnedpanda 06.12.2018 07:45

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

user3521712 06.12.2018 07:47
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
160
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Лучше всего переделать вашу базу данных, все в единую таблицу с дополнительным столбцом «категории».

тем временем вы можете создать представление, объединяющее таблицы с дополнительным столбцом для категории.

Я рекомендую сохранить одну таблицу A с идентификатором, описанием, заголовком, категорией и создать другую таблицу B с категориями. Таблица A должна иметь внешний ключ с категориями таблиц. Затем создайте запрос для получения книг с определенной категорией.

Пример:

SELECT id, description, title, category FROM books WHERE category = "drama"

Я думаю, что это говорит о самом дизайне базы данных, о чем многие здесь упоминают. У вас есть несколько вариантов в зависимости от того, сколько времени у вас на руках:

(Краткосрочное / быстрое исправление) Центральная таблица со всеми вашими текущими полями плюс категория в качестве флага, чтобы различать текущие таблицы, которые у вас есть. Таким образом, ваша вставка будет выглядеть примерно так: «INSERT INTO newtable (ID, AssetID, ServiceID, Category) SELECT id, description, title, 'Fiction' FROM table1;»

Если ваши таблицы инкрементно именуются как table1, table2 до table100, вы могли бы написать быстрый php-скрипт, который будет выполнять итерацию цикла вставки, увеличивая таблицу на каждой итерации до последней таблицы.

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

Ответ принят как подходящий

Я рекомендую переделать модель и унифицировать эти 100 таблиц до 1 и добавить новый столбец с категорией, но с целочисленным значением, а не с строковым значением. Таким образом, вы можете проиндексировать столбец категории с другими полями (идентификатор, описание, заголовок) для ускорения запроса. Это решение проще, чтобы избежать боли в дальнейшем.

Другие вопросы по теме