У меня ниже схемы базы данных.
Table:items
item_id int(11) autoincrement not null
item_name varchar(22) not null
version_start_date datetime not null
version_end_date datetime
Первичный ключ для приведенной выше таблицы (item_id, version_start_date).
Семантика версий version_start_date и version_end_date заключается в отслеживании любых изменений в строке таблицы. Например, если имя элемента изменено, добавляется новая строка и обновляется старая строка version_end_date.
Я пытался смоделировать это в спящем режиме, но составной ключ не позволяет генератору присутствовать согласно схеме. Мне нужен генератор для itemid. Как мне смоделировать это в спящем режиме.
Я заблокирован на этом шаге :( Любая помощь будет оценена.
Спасибо
Bala
-- Updated
Итак, наконец, я думаю о подходе ниже. Я не хочу использовать естественный идентификатор, потому что мне нужно создать идентификатор. Вместо этого я думаю о том, чтобы поле item_version_id также было в таблице.
Итак, новая схема будет ...
Table:items
item_version_id autoincrement not null
item_id int(11) autoincrement not null
item_name varchar(22) not null
version_start_date datetime not null
version_end_date datetime
primary key(item_version_id)
unique key(item_id,version_start_date)
Я думаю, что этот подход будет работать. Но я не уверен, как это сделать в спящем режиме.
Только элемент ID может иметь генератор. Но в этом случае у меня есть два генератора. Есть ли обходной путь для этого.
Спасибо
Bala