ORM для неразрушающей системы? - PullRequest
1 голос
/ 19 августа 2010

Я не знаю, существует ли для этого конкретное имя, но я разрабатываю приложение, опирающееся на базу данных, в которой строки должны быть неизменяемыми (не уверен, что этот термин применяется здесь, но это наиболее близко к описанию Что мне нужно). То есть вместо изменения данных, хранящихся в строке, будет вставлена ​​новая строка с тем же id, но с другим первичным ключом. В строке будут храниться некоторые метаданные, которые будут указывать, какая строка является самой последней для этого id, и была ли «удалена» запись с этим id. Я хотел бы использовать ORM, в котором я мог бы использовать обычные операторы insert, update, delete, но делал бы все это в фоновом режиме. Поскольку я не знаю, какую терминологию использовать, мне трудно найти решение с помощью великолепного, всезнающего Google. Существует ли подобный ORM, или мне придется создать его / изменить существующий? Любые советы приветствуются.

Ответы [ 4 ]

1 голос
/ 19 августа 2010

Вы можете использовать любой ORM, который поддерживает хранимые процедуры, а затем написать sprocs для выполнения обновлений.

1 голос
/ 19 августа 2010

Что вам может понадобиться, так это шаблон временной базы данных, при котором при сохранении каждого элемента создается новая версия.Идея временных баз данных заключается в том, что вы можете запрашивать данные, как это было на конкретную дату.

0 голосов
/ 07 ноября 2012

Терминология для того, что вы ищете, обычно называется Copy-on-write.

По иронии судьбы многие базы данных, такие как Postgresql (MVCC) и SqlServer (Snapshot), в той или иной форме используют COW , но по причинам производительности и ACID.

Из того, что я понял, вы, вероятно, ищете характеристики управления версиями, и хотя я не знаю ни одной ORM или RDBMS, поддерживающей такое поведение, существует много репозиториев контента, которые делают. Примером может служить реализация JCR (JSR 170), такая как JackRabbit .

В противном случае я рекомендую вам посмотреть, как работает программное обеспечение Wiki, использующее СУБД (обычно это индексы с двумя столбцами и столбцом id и version).

0 голосов
/ 19 августа 2010

Может быть, это может быть решением?

http://docs.jboss.org/envers/docs/index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...