За последние 24 часа нас посетили 22899 программистов и 1235 роботов. Сейчас ищут 695 программистов ...

Группировка таблиц

Тема в разделе "MySQL", создана пользователем winsok, 18 сен 2021.

  1. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    Подскажите, возможна ли группировка таблиц в базе mysql?

    Есть много компаний у которых есть свои таблицы. Хотелось бы сгруппировать если возможно)
     
  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Это называется "объединение таблиц", JOIN
     
  3. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    Я всё таки думаю это UNION
    --- Добавлено ---
    Вы пример таблиц опубликуйте, иначе это будет только гадание, а не ответ
     
  4. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    например, есть таблицы
    company_A_price
    company_A_clients

    company_B_price
    company_B_clients

    и таких много)

    так вот можно ли группировать в phpmyadmin, чтоб отображало например:

    company_A

    company_B
     
  5. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Куча однотипных таблиц - Это неверный подход к организации бд.. достаточно добавить ключ в таблицу для привязки компании, и достаточно одной таблицы будет
     
    Slava Rozhnev нравится это.
  6. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    а как правильно было бы:)
     
  7. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Таблица компаний, в таблице price, внешний ключ company_id который указывает на id в таблице компаний. Для получения данных по компании конкретной достаточно в условие добавлять company_id = ид компании
     
  8. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    а если будет овермного записей, не будет ли оно медленно работать?
     
  9. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Овермного это сколько?
    В любом случае - не медленнее кучи таблиц. Преждевременная оптимизация не только бессмысленна, но и вредна.
     
  10. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    Попахивает плохой архитектурой базы данных. Если Вам по какой-то причине нужно хранить данные разных фирм то напрашивается слетующая схема:
    Код (Text):
    1. create table companies (
    2.   id int auto_increment primary key,
    3.   name varchar(64) -- rest company fields
    4.   );
    5.  
    6. create table clients (
    7.   id int auto_increment primary key,
    8.   company_id int,
    9.   name varchar(64),
    10.   -- rest client fields
    11.   index(company_id),
    12.   foreign key (company_id) references companies(id)
    13. );
    14.  
    15. create table products (
    16.   id int auto_increment primary key,
    17.   name varchar(64) -- rest product fields
    18.   );
    19.  
    20. create table prices (
    21.   id int auto_increment primary key,
    22.   company_id int,
    23.   product_id int,
    24.   price decimal(9, 2),
    25.   -- rest fields
    26.   index(company_id),
    27.   index(product_id),
    28.   foreign key (company_id) references companies(id)
    29. );
    MySQL run online
     
  11. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    понял, спасибо