Я разрабатываю плагин администрирования для серверов Bukkit. Я хочу дать ему возможность банить (обычный, временный и IP), отключать звук (обычный и временный) и предупреждать игроков. Чтобы хранить всю эту информацию, я хочу использовать базу данных SQL (SQLite или MySQL).
Информация может храниться двумя способами.
Вариант 1:
4 меньших стола:
playerlist
[id,player,ip,lastlogin] (используется для ведения списка всех присоединившихся игроков)banlist
[id,player,ip,creationTime,reason,endTime,type] (Отслеживайте всю информацию о бане)mutelist
[id,player,creationTime,reason,endtime,type] (Отслеживайте всю информацию об отключении звука)warnlist
[идентификатор,игрока,предупреждает]
Это потребовало бы, чтобы я запрашивал каждую таблицу отдельно, а затем анализировал каждую отдельную ResultSet
.
Вариант 2:
1 большой стол
playerlist
[id,player,ip,lastlogin,banReason,banEndTime,banType,muteReason,muteEndTime,muteType, предупреждает]
Это потребовало бы от меня только запроса 1 большой таблицы для получения всей необходимой информации, которую затем можно было бы проанализировать из одного ResultSet
.
Я хочу знать следующее: Какой вариант в целом был бы лучшим? Судя по тому, что я видел, ответы людей различаются в зависимости от того, как люди используют свою базу данных и ее размер. Поскольку я новичок в базах данных SQL, я не уверен, что было бы хорошо в этой ситуации.