Или вот более интересная задача: зависимости между объектами. Есть
система управления проектами. В ней с десяток разных элементов: проекты,
задачи, риски, связанные ресурсы, затраты и т.п. Нужно иметь механизм
описания зависимости между двумя любыми элементами (которую пожелает
закачкик в будущем).
Саму структуру описания я с горем пополам сделал, в частности там есть
следующие 4 поля:
ObjectWhoDependsId
ObjectWhoDependsTypeId
ObjectDependsFromId
ObjectDependsFromTypeId
понятное дело что при удалении объекта хорошо бы чтобы удалились
связанные с ним зависимости, т.е. ON DELETE CASCADE тут самое то.
Только вот ключ повесить не на кого. В одном случае дата
начала/окончания одной задачи, может зависить от даты начала/окончания
другой. А в другом случае при назначении какой-нить Марьи Павловны на
выполнение задачи в проекте нужно создать риск что Марья Павловна может
забеременеть. Т.е. совершенно произвольные зависимости могут быть.
Как в этом случае предлагаете обойтись традиционным ключём?