Это во многом зависит от того, что это за «другие» детали. Это частый и интересный вопрос, на который, на первый взгляд, нет однозначного ответа. Но если мы подумаем о проблеме более абстрактно, о фактических отношениях между атрибутами («деталями») любой конкретной вещи, которую вы хотите представить, мы можем найти некоторую ясность.
В своем вопросе вы указываете, что у друзей есть «минимальные» и «прочие» детали. Вместо того, чтобы классифицировать эти детали как «минимальные» или «прочие», давайте классифицируем их по тому, может ли какая-либо отдельная («атомарная») деталь быть полностью определена тем, что делает друга уникальным.
Я предполагаю, что есть какой-то первичный ключ (PK), например FriendID, адрес электронной почты или что-то в этом роде. Принимая во внимание этот уникальный идентификатор, спросите себя: «Если мне дают ровно один FriendID (или адрес электронной почты, или что-то еще, что вы используете в качестве PK), в каких деталях этого друга я абсолютно уверен? Например, учитывая FriendID = 2112, я абсолютно уверен. знаю имя, фамилию и дату рождения этого друга, но я не абсолютно знаю номер телефона этого друга, потому что их несколько.
Сгруппируйте в одну таблицу все детали, которые вы однозначно знаете по ПК. Поместите детали, для которых вам нужно больше данных (например, «домашний» или «рабочий» в случае телефонных номеров), в «дочерние» таблицы, связанные внешним ключом с «родительской» таблицей на ПК. (Примечание. Весьма вероятно, что PK дочерней таблицы будет составной, то есть составленной из PK родительской таблицы и дифференцирующего фактора (например, «домашний» или «рабочий» в этом примере). Составные ключи для многих сторон отношений 1-М очень хорошие.)
Специалисты по базам данных называют эту декомпозицию на основе функциональных зависимостей.
person
Alan
schedule
06.07.2009