2013-02-23 2 views
0

Я пытаюсь переместить свой офис в приложение базы данных. Вот что я получил: http://www.phunkei.de/images/erd_office.pngmysql нормализация базы данных/моделирование

компании и индивидуумы наследуют (1: 1 отношение) от клиентов. Это потому, что оба они могут быть «клиентом» и получать счет, и я хотел бы ссылаться на одну таблицу в заказах. Существует еще одна взаимосвязь между компаниями и клиентами: многие для многих. Надеюсь, у вас, ребята, есть идеи по улучшению, потому что я не уверен в этом.

редактировать: компании и частные лица будут иметь несколько различных полей ...

+0

Почему у компаний и частных лиц есть связь между ними? Просто пытаюсь понять лучше. От многих до многих отношений обычно разрешается, добавив таблицу, содержащую только два ключа из двух таблиц, то есть она будет содержать company_id и individual_id. –

+0

Да, между ними будет другой стол. Ну, может быть много людей в компании, с которой мне приходится иметь дело. Иногда человек также может быть связан с несколькими компаниями, поэтому есть отношение. То, что я нахожу «незабываемым», - это наследование. – Daniel

ответ

1

Я считаю себя базы данных новичок, так что принять это предложение с зерном соли. Я лично был бы соблазн установить это как звездную схему. Вот пример из:

Microsoft Technology: BI Dimensional Model - Star Schema

star schema

Это должно позволить для быстрой скорости запроса (если все индексируется правильно) и позволит вам легко добавлять на дополнительные атрибуты для запроса. Один компромисс для быстрых запросов - это обновление таблицы фактов. Это будет медленнее из-за индексации.

Это хорошо сработало для меня в прошлых проектах, но, опять же, я отнюдь не квалифицированный профессионал базы данных.

+0

спасибо за этот пример. Но моя проблема в том, что у меня есть 2 разных типа клиентов (компаний и частных лиц). – Daniel

+0

Не могли бы вы использовать компании/отдельных лиц в качестве атрибута идентификатора клиента, а не для создания отдельной таблицы для каждого? – UberNubIsTrue

+0

это был мой первый дизайн. Но чтобы он был гибким и действенным для возможных расширений, я решил наследовать. Но я буду макетировать и сейчас, и сделать некоторые тесты. Благодарю. – Daniel

Смежные вопросы