Скажем, у меня есть эти таблицы SQL:
а) книга
б) клиент
с) borrow_history (book_id, customer_id ...)Внешний ключ и отношение п-к-п
я могу определить две ссылки на внешние ключи (на удаления каскада) из borrow_history, ссылаясь книгу и клиента, так :
- borrow_history запись, связанная с книги будет удалена, когда книга была удалена.
- Записей записей, подключенных к , клиент будет удален при удалении клиента.
Но как я определить внешние ключи таким образом, что клиент будет удален, если он не имеет borrow_history не подключен к нему, так что удаление книги может рекурсивно удалить также клиент?
Возможно ли, или мне нужно использовать триггеры?
Клиент может существовать, когда книга (и ее заимствования_история) возникает, но когда когда эта книга (и ее заимствования) перестает существовать, клиент также перестает существовать? Это звучит странно. – onedaywhen
Цель состоит в том, чтобы создать клиента, и его первая история заимствования должна быть сделана в одно и то же время, другими словами, клиент не может предварительно использовать exvis, предполагаемый инвариант не может быть клиентом в любое время, которое не связано к некоторой истории заимствования. – kovarex