Я использую MySQL в моем Java приложении.Поскольку я немного новичок в MySQL, мне хотелось бы кое-что узнать.
У меня есть 2 стола, Players и PausedCooldowns.
Таблица Players имеет в качестве первичных ключей most_uuid и less_uuid.Таблица PausedCooldowns имеет most_uuid, less_uuid в качестве первичного и внешнего ключей.
Очевидно, что most_uuid и less_uuid в PausedCooldowns не являются УНИКАЛЬНЫМИ, потому что у игрока может быть более 1 перезарядки.
Когда игрок присоединяется, я должен зарегистрировать его и его значения.Для этого я делаю следующий запрос:
SELECT * FROM Players
INNER JOIN PausedCooldowns
ON Players.most_uuid = PausedCooldowns.most_uuid
AND Players.least_uuid = PausedCooldowns.least_uuid
WHERE most_uuid = ? AND least_uuid = ?
Если я не ошибаюсь, мой ResultSet будет иметь много значений (если у игрока более 1 перезарядки), и мне придется его выполнять.с циклом while.
Мой финальный стол обычно будет выглядеть так: Объединенный стол http://prntscr.com/nf1a7z
Теперь давайте подойдем к проблеме:
- На моем первомитерация. Я зарегистрирую игрока и большинство его значений (не отображаются в таблице) и одно время восстановления.
- На 2-й итерации мне нужно будет зарегистрировать только 2-е время восстановления, игнорируя первые значения.
- На 3-м и т. Д. И т. Д. И т. П.
Это означает, что на каждой итерации мне придется проверять, зарегистрированы ли игроки в кеше плагина.И я не думаю, что это самый эффективный способ сделать это.
Знаете ли вы какие-либо другие способы сделать это или это лучший вариант?Зная, что мне нужно будет присоединиться и ко многим другим столам, таким как таблица Notes (содержащая информацию об игроках), таблица Reports (содержащая отчеты от других игроков) и т. Д.
Спасибоза любую помощь и извините за длину этого поста.Я хотел дать как можно больше информации