Или вот более интересная задача: зависимости между объектами. Есть система управления проектами. В ней с десяток разных элементов: проекты, задачи, риски, связанные ресурсы, затраты и т.п. Нужно иметь механизм описания зависимости между двумя любыми элементами (которую пожелает закачкик в будущем).

Саму структуру описания я с горем пополам сделал, в частности там есть следующие 4 поля:

ObjectWhoDependsId
ObjectWhoDependsTypeId
ObjectDependsFromId
ObjectDependsFromTypeId


понятное дело что при удалении объекта хорошо бы чтобы удалились связанные с ним зависимости, т.е. ON DELETE CASCADE тут самое то.

Только вот ключ повесить не на кого. В одном случае дата начала/окончания одной задачи, может зависить от даты начала/окончания другой. А в другом случае при назначении какой-нить Марьи Павловны на выполнение задачи в проекте нужно создать риск что Марья Павловна может забеременеть. Т.е. совершенно произвольные зависимости могут быть.

Как в этом случае предлагаете обойтись традиционным ключём?

Ответить