GroupMember, GroupLeader, и руководитель должен быть отношения к таблице Person. Возможно, что-то вроде следующего?
Person (
id
name
surname
date of birth
gender
home address
emergency contact number
comment field
)
Activity (
id
type of activity
activity description
date
morning or afternoon
supervisor -> Person
)
ActivityParticipant (
activity id -> Activity
person id -> Person
)
Group (
id
name
start date of stay
end date of stay
(amount of people in group?)
)
GroupMember (
person id -> Person
group id -> Group
)
Group Leader (
group id -> Group
person id -> Person
)
Chalet (
id
Chalet number
Chalet name
number it sleeps
price per individual
)
Accomodation (
group id -> Group
chalet id -> Chalet
)
Не уверен, что переполнение стека - это лучший возможный сайт для обмена стеками; и должны ли вы нормализовать или нет, может зависеть от проблемы (проблем), с которой вы имеете дело. Некоторые вещи, которые вы могли бы попробовать: (1) члены группы, руководители групп и супервизоры могли быть сведены как «Роли», назначенные (N: N), «Лицам»; (2) некоторые личные данные могут быть перемещены в отдельные таблицы, например. 'Addresses'. Это может иметь смысл, например, когда, вероятно, некоторые люди живут вместе. – stakx
Можете ли вы немного подробнее рассказать о первом. Когда я это сделаю, как я тогда подключу эту таблицу людей к трем другим? например, как мне нужно заполнить таблицу лиц данными, чтобы все остальные таблицы получали правильную информацию? –
«Телефонный номер« номер телефона »« номер экстренного контакта »и« текущий номер мобильного телефона »всегда одинаковы? Или номер экстренного контакта отличается от обычного номера телефона человека? Являются ли отдельные участники участниками деятельности, или это всегда группа? Мы должны были бы сделать много предположений, если бы мы решили, была ли ваша модель правильной. – JodyT