Mysql Версионность и внешние ключ

SiZE

Новичок
Мне вот что интересно. Как сделать версионность записей таблицы, если в N таблиц есть внешний ключ на эту таблицу?
Есть такой вариант. При обновлении данных, создается новая запись со ссылкой на предыдущую, предыдущая помечается удаленной. Таблицы содержащие внешний ключ на нашу таблицу обновляются. Минус этого решения в том, что мы всегда должны знать все таблицы, которые ссылаются на нашу запись. А это не удобно, кто-то может и забыть прописать таблицу в код если создаст новую. Если таблицы не обновлять, то чтобы получить актуальную запись, нам придется выбрать старую запись и заджойнить актуальную. Это тоже криво как-то.
Как это обычно делается?
 

fixxxer

К.О.
Партнер клуба
Триггерами можно, наверное.
Вот что-то такое, только на mysql портировать. Ну и дописать обновление версий по зависимостям, ога.
 

MiksIr

miksir@home:~$
Можно обновлять существующую запись, а старую переносить в отдельную таблицу, у которой нет внешних ключей, вернее только один - на основную таблицу.
Можно жить в одной таблице, тогда просто нужно будет несколько UPDATE-ов, что бы изменить содержимое записи или изменить ID записи и внешние ключи ON UPDATE CASCADE.
 
Сверху