Здравствуйте, VladiCh, Вы писали:
VC>Как с теоретической точки зрения правильно нормализовать очень простую схему из 2х отношений:
VC>1. user
VC>--------
VC>userId
VC>groupId
VC>region
VC>2. group
VC>--------
VC>groupId
VC>region
VC>Пользователь всегда принадлежит к какому-то региону но не всегда к группе.
VC>Когда он принадлежит к группе, его регион совпадает с регионом группы (берется из него)
VC>То есть по идее groupId + region должны быть PK в group,
VC>Но в таком случае когда пользователь не принадлежит к группе, то у него теряется region.
VC>или столбцов region должно быть 2, что также не является нормализованным вариантом.
VC>Если же PK будет только groupId, то возможна ситуация когда у группы назначен один регион а у пользователя другой — тоже (не)нормально.
Так на пальцах: таблица Регион и таблица Группа имеют связь 1 к 1 к базовой таблице(назвать можно по разному), эта таблица имеет связь 1 ко многим с таблицей Пользователь, таблица Регион имеет связь 1 ко многим с таблицей Группа. Получается, что пользователь может быть ассоциирован либо с регионом, либо с группой у которой уже есть регион.