Неучёные программисты любят рассказывать, что в базе каждая "запись" должна иметь "айди".
И вот получается, что Binary, blin, Relationship мы представляем в виде мультисета.
ЭТО БРЕД.
Если вы хотите как-то оттрассировать, "шо там было", добавляйте лучше дату изменения и кто изменил, или откуда оно пришло (нет, выкидывать не надо, надо только помечать, что, мол, "это удалено").
Вот сейчас сижу и вычищаю "дубликаты" в различного отношениях. Потому что если нам нужно изменить отношение, мы не ссылаемся, блин на него по его "айди", а ссылаемся на него по его конкретному значению.
Ну как если у вас, скажем, график функции есть, состоит из пар, (х,у) - и вы вдруг с какого-то бодуна решили к этому делу ещё присандалить "айди".
Я не знаю, откуда это пошло. В Z specification language ничего такого нету.
Заметьте, я ничего не говорю о коллекциях данных. Только об отношениях.