Постановка проблемы - [Бизнес] 1 --- * [Филиал] Бизнес должен иметь один или несколько филиалов. Только одна ветвь может быть основной ветвью.
У меня на уме два дизайна
- [ Таблица филиалов ] - {id, BusinessID (FK), Имя и т. Д., IsMainBranch }
- [ Таблица филиалов ] - {id, BusinessID (FK), Имя и т. Д.}, [ Таблица MainBranch ] - {BranchID (PK, FK), BusinessID (FK) }.
- [ Бизнес-таблица ] - {id, name, mainbranchid }, [ Таблица филиалов ] - {id, BusinessID (FK), Name и т. Д. }
Проблема с # 1 - Чтобы установить ограничение на IsMainBranch, я должен использовать триггеры, которые могут не синхронизироваться последними.
Проблема с # 2 - бит сложен для доступа к данным в EF.
Проблема с # 3 - Не думайте, что это хороший дизайн.
Я использую EF 4.1 в качестве ORM и не хочу усложнять, какой дизайн мне выбрать. Пожалуйста, предложите, если есть лучший / альтернативный способ для того же.