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

  • Автор темы Автор темы SiZE
  • Дата начала Дата начала

SiZE

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