Можно ли создать несколько таблиц для одной и той же сущности jpa? - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть сущность Messages, которая является классом для регистрации метки времени, сообщения и machine_uuid

public class Messages  {

    private UUID                uuid;
    private UUID                machine;
    private long                timestamp;
    private String              message;                                        
}

Если есть много машин, которые регулярно отправляют сообщения, таблица может быстро стать огромной. Можно ли создать отдельную таблицу сообщений для каждой машины?

Ответы [ 2 ]

2 голосов
/ 05 февраля 2020

Нет. В JPA это невозможно, но большинство поставщиков баз данных в этом случае поддерживает разделение таблиц.

https://dev.mysql.com/doc/refman/8.0/en/partitioning.html

0 голосов
/ 05 февраля 2020

Если у вас есть один экземпляр БД, вам не нужно иметь разные таблицы для разных идентификаторов компьютеров. Вы можете создать INDEX для UUID машины и выполнять свои манипуляции без потери времени. Это плохая практика иметь разные таблицы для разных идентификаторов.

Вам будет очень тяжело поддерживать разные таблицы по имени, например, table: messages_machine_id_1, messages_machine_id_2. Особенно, когда вы удалите или добавите другой компьютер, но сделать запрос с использованием идентификатора компьютера легко и быстро.

И если проблема огромна, не проблема, просто добавьте индексы, и вы быстро получите свой данные.

...