Это зависит от того, что эти «другие» детали. Это общий и интересный вопрос, и на первый взгляд нет «жесткого и быстрого» ответа. Но если мы рассмотрим проблему более абстрактно, о фактической связи между атрибутами («деталями») любой конкретной вещи, которую вы хотите представить, мы можем найти определенную ясность.
В своем вопросе вы заявляете, что у друзей есть «минимальные» и «другие» детали. Вместо того, чтобы классифицировать эти детали как «минимальные» или «другие», давайте классифицируем их по тому, может ли какая-либо индивидуальная («атомная») детальность быть полностью определена тем, что делает друг уникальным.
Предполагаю, что есть первичный ключ (PK), например FriendID или адрес электронной почты или что-то в этом роде. Учитывая этот уникальный идентификатор, спросите себя: «Если мне дается точно один FriendID (или электронная почта или что-то еще, что вы используете в качестве ПК), какие детали этого друга я абсолютно уверен?, учитывая FriendID = 2112, я абсолютно точно знаю имя и фамилию друга, дату рождения, но я не знаю, номер телефона друга, потому что есть более одного из них.
Сгруппируйте вместе в одном столе все детали, которые вы однозначно знаете с учетом ПК. Поместите детали, для которых вам нужны дополнительные данные (например, «домашний» или «работа» в случае телефонных номеров) в «дочерних» таблицах, с обратной привязкой к «родительской» таблице на ПК. (Примечание. Очень вероятно, что ПК дочерней таблицы будет составной, т. Е. Состоящей из PK родительской таблицы и дифференцирующего фактора (например, «home» или «work» в этом примере). Композитные клавиши для многих сторон отношений 1-M очень хорошие.)
Базы данных вызывают это разложение на основе функциональных зависимостей.
О, я теперь выродка; =) – Peter
+1 кстати. – Peter