В CouchDB это довольно просто. Каждый элемент в БД имеет _id и _rev. Таким образом, вам не нужен отдельный номер ревизии. Я, вероятно, сделал бы это тогда. Назначьте каждому элементу системный номер. Этот номер будет ссылкой на другую запись в БД, содержащую дату, комментарий и пользователя для этой ревизии.
Примеры:
отслеживаемый элемент:
{
_id: "1231223klkj123",
_rev: "4-1231223klkj123",
systemRev: "192hjk8fhkj123",
foo: "bar",
fooarray: ["bar1", "bar2", bar3"]
}
А затем создайте отдельную запись ревизии:
{
_id: "192hjk8fhkj123",
_rev: "2-192hjk8fhkj123",
user: "John",
comment: "What I did yesterday",
date: "1/1/2010",
tags: ["C# edits", "bug fixes"]
}
Мне это кажется довольно элегантным ....