Во-первых, это схема объекта, а не схема базы данных. Во-вторых, это не все, далеко не завершено. Посмотрите на класс школы (не таблица), обратите внимание на отношения, 1 и 2 старших классов и список школ. Видите ли вы свойства в классе Profile для хранения этих «внешних ключей».
На ваш вопрос нельзя ответить точно
Во-вторых, какая разница, как это делает facebook? Третья нормальная форма не чёрное искусство? Там нет знаний о Потерянном и Унесенном Навсегда, к которым вы не причастны.
Хотите ли вы много-много отношений между филиалами и профилями? Или нет? Вы пытаетесь раскрыть взаимозависимости между филиалами?
Почему бы просто не задать нам конкретные вопросы о том, как разработать то, что ВЫ хотите сделать?
EDIT
Один профиль может иметь много филиалов. И одна принадлежность может иметь много профилей.
Это отношение многих ко многим.
В физической базе данных вам нужна таблица сопоставления многие-многие.
В самом простом случае он содержит PK из обеих таблиц, и эти столбцы образуют PK этой таблицы.
Так что теперь просто добавьте столбцы в таблицу сопоставления.
Start_date => дата добавления профиля этой принадлежности
End_Date => по сути логическое удаление
Что еще вы хотите знать об отношениях.
Подумайте об этих объектах
1. Видео
2. Арендатор
3. Магазин
Много-много-много можно охарактеризовать как АРЕНДУ.
VideoID, RenterID, StoreID,
Что еще вы хотите знать о "АРЕНДЕ"
- Дата (проверено)
- Дата возврата
- Срок исполнения
- Скидка (скажем, за аренду 3 получить 1 бесплатно, и это четвертый или что-то)