Подтвердить что ты не робот

Хорошее место для поиска примеров проектов баз данных - лучшие практики

Мне была поручена разработка базы данных для хранения большого количества информации для нашей компании. Поскольку задача довольно большая и содержит несколько модулей, в которых пользователи могут делать что-то, я беспокоюсь о разработке хорошей модели данных для этого. Я просто не хочу заканчивать плохо спроектированной базой данных.

Я хочу иметь несколько достойных примеров структур баз данных для контрактов/биллинга/заказов и т.д., чтобы объединить их в одной красивой реляционной базе данных. Есть ли какие-то ресурсы, которые могут помочь мне с некоторыми примерами в этом отношении?

4b9b3361

Ответ 1

Прежде чем вы начнете читать нормализацию, пока у вас не возникнет никаких вопросов по этому поводу. Если вы делали это только в школе, вы, вероятно, еще недостаточно знаете об этом, чтобы создавать дизайн.

Соберите ваши требования для каждого модуля тщательно. Вам нужно знать:

Бизнес-правила (которые специфичны для приложений и которые должны применяться в базе данных, поскольку они должны применяться ко всем записям независимо от источника),

Существуют ли правовые или нормативные проблемы (например, HIPAA или требования Сарбейнса-Оксли) безопасность (нужно ли шифровать данные?)

Какие данные вам нужно хранить и почему (эти данные доступны где-либо еще)

Какие части данных будут иметь только одну строку данных, а какие должны иметь несколько строк?

Как вы намереваетесь обеспечить уникальность строки в каждой таблице? У вас есть естественный ключ или вам нужен суррогатный ключ (предлагайте суррогатный ключ почти во всех случаях)?

Вам нужна репликация?

Вам нужен аудит?

Как данные будут вводиться в базу данных? Будет ли оно поступать из приложения по одной записи за раз (или даже из нескольких приложений), или будет частично из массовых вставок из инструмента ETL или из другой базы данных.

Нужно ли вам знать, кто внес запись и когда (весьма вероятно, что это потребуется в корпоративной системе.

Какие таблицы поиска вам понадобятся? Ввод данных намного более точен, когда вы можете использовать справочные таблицы и ограничивать пользователей значениями.

Какой тип проверки данных вам нужен?

Примерно сколько записей будет в системе? Вам нужно иметь представление о том, насколько велики размеры ваших тестовых данных.

Как вы собираетесь запрашивать данные? Будете ли вы использовать хранимые процедуры или ORM или динамические запросы?

Некоторые очень простые вещи, которые нужно запомнить в вашем дизайне. Выберите правильный тип данных для ваших данных. Не храните даты или числа, для которых вы собираетесь выполнять математические операции, в строковых полях. Храните числа, которые не являются кандидатами на математику (номера деталей, почтовые индексы, номера телефонов и т.д.), В качестве строковых данных, так как вам могут понадобиться начальные нули. Не храните более одной информации в поле. Таким образом, нет списков с запятыми (они указывают на необходимость связанной таблицы), и, пока вы занимаетесь этим, если вы обнаружите, что делаете что-то вроде phone1, phone2, phone 3, немедленно остановитесь и создайте связанную таблицу. Используйте внешние ключи для обеспечения целостности данных.

На протяжении всего вашего проекта учитывайте целостность данных. Данные, которые не имеют целостности, не имеют смысла и бесполезны. Проектируйте для повышения производительности, это очень важно для проектирования баз данных и НЕ является преждевременной оптимизацией. Реализовать базу данных нелегко, поэтому важно правильно определить наиболее важные части уравнения производительности. Фактически все базы данных должны быть спроектированы для обеспечения целостности данных, производительности и безопасности.

Не бойтесь иметь несколько объединений, при правильной индексации они будут работать очень хорошо. Не пытайтесь поместить все в таблицу типов значений сущностей. Используйте их как можно реже. Попробуйте научиться мыслить с точки зрения обработки наборов данных, это поможет вашему дизайну. Базы данных оптимизированы для работы в наборах.

Там больше, но этого достаточно, чтобы начать переваривать.

Ответ 2

Барри Уильямс опубликовал библиотеку из примерно шестисот моделей данных для всех видов приложений. Почти наверняка это даст вам "стартер на десять" для всех ваших подсистем. Доступ к этой библиотеке бесплатный, поэтому проверить.

Похоже, что это большое приложение "enterprise-y", которое хочет ваша организация, и вы, похоже, немного начинаете с базами данных. Если это вообще возможно, вы должны начать с одной подсистемы - например, "Заказы" - и получить эту работу. Не только таблицы базы данных строят, но и некоторые скелетные интерфейсы для него. Как только это будет достаточно хорошим, добавьте другую связанную подсистему, такую ​​как Billing. Вы не хотите в конечном итоге с разрастающимся монстром.

Также убедитесь, что у вас есть достойный инструмент моделирования данных. SQL Power Architect достаточно хорош для свободного инструмента.

Ответ 3

Книга ресурсов модели данных.

http://www.amazon.com/Data-Model-Resource-Book-Vol/dp/0471380237/ref=dp_cp_ob_b_title_0

Тяжелые вещи, но очень хорошо. Всего 3 тома...

Имеет много очень хорошо продуманных общих структур - но они НЕ легки, поскольку охватывают все;) Всегда хорошая отправная точка, хотя.

Ответ 4

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

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

Ответ 5

База данных не должна быть моделью. Он используется для сохранения информации между сеансами работы.

Вы не должны создавать свое приложение по модели данных, а на хорошей объектно-ориентированной модели, которая следует бизнес-логике.

Как только ваша объектная модель будет выполнена, подумайте о том, как вы можете ее сохранить и загрузить, со всем дизайном базы данных, который идет с ней.

(но, видимо, ваша компания просто хочет, чтобы вы проектировали базу данных, а не приложение?)