Я хотел бы иметь несколько пользователей, которые используют одни и те же таблицы в базе данных, но имеют одно значение auto_increment для каждого пользователя. Я буду использовать встроенную базу данных, JavaDB и, как я знаю, не поддерживает эту функциональность. Как я могу это реализовать?Как реализовать Auto_Increment для пользователя в той же таблице?
Должен ли я внедрить триггер на вставках, которые ищут последнюю вставленную пользователем строку, а затем добавить ее или есть лучшая альтернатива? Или лучше реализовать это в коде приложения?
Или это просто плохая идея? Я думаю, что это легче поддерживать, чем создавать новые таблицы для каждого пользователя.
Пример:
table
+----+-------------+---------+------+
| ID | ID_PER_USER | USER_ID | DATA |
+----+-------------+---------+------+
| 1 | 1 | 2 | 3454 |
| 2 | 2 | 2 | 6567 |
| 3 | 1 | 3 | 6788 |
| 4 | 3 | 2 | 1133 |
| 5 | 4 | 2 | 4534 |
| 6 | 2 | 3 | 4366 |
| 7 | 3 | 3 | 7887 |
+----+-------------+---------+------+
SELECT * FROM table WHERE USER_ID = 3
+----+-------------+---------+------+
| ID | ID_PER_USER | USER_ID | DATA |
+----+-------------+---------+------+
| 3 | 1 | 3 | 6788 |
| 6 | 2 | 3 | 4366 |
| 7 | 3 | 3 | 7887 |
+----+-------------+---------+------+
SELECT * FROM table WHERE USER_ID = 2
+----+-------------+---------+------+
| ID | ID_PER_USER | USER_ID | DATA |
+----+-------------+---------+------+
| 1 | 1 | 2 | 3454 |
| 2 | 2 | 2 | 6567 |
| 4 | 3 | 2 | 1133 |
| 5 | 4 | 2 | 4534 |
+----+-------------+---------+------+
Зачем вам нужен отдельный идентификатор автоинкремента на пользователя? –
@Todd: Потому что я хочу «серийный номер» для каждого пользователя. – Jonas
Сколько сеансов будет выполняться одновременно? –