Каковы основные моменты при разработке базы данных? - PullRequest
0 голосов
/ 22 июля 2011

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

Теперь к делу. Если бы кто-то мог объяснить мне эту часть независимо от ее (системной) темы будущего Будет ли это магазин, блог или т. Д. Существуют ли какие-либо основные критерии, которым следует уделять повышенное внимание?

Спасибо всем за помощь? Надеюсь, этот вопрос не слишком абстрактный.

Ответы [ 2 ]

2 голосов
/ 22 июля 2011

Вот 10 высокоуровневых вещей, которые вы должны рассмотреть, чтобы начать, в произвольном порядке:

  1. Нормализация (Третья нормальная форма, вероятно, достаточно)
  2. Согласованное и стандартное именование объектов
  3. Правильное использование внешних ключей
  4. Определение того, что использовать для первичных ключей (вы хотите использовать искусственное значение, такое как целочисленное значение идентификатора?)
  5. Правильное использование индексации с соответствующим использованием при необходимости индексов покрытия. Будьте осторожны, чтобы избежать дублирования / дублирования / наложения индексов.
  6. Тщательно продумайте, хотите ли вы использовать триггеры (их следует избегать, если это возможно).
  7. Будьте очень осторожны с представлениями и табличными UDF, которые вызывают скалярные UDF. Это действительно может привести к неприятностям с точки зрения производительности, если вы не обращаете внимания на то, что делаете.
  8. В какой степени вы хотите, чтобы бизнес-логика в вашей базе данных отличалась от кода приложения (такого как C #, Java и т. Д.). Это включает использование проверочных ограничений.
  9. Создать согласованную схему комментирования / документирования для хранимых процедур, пользовательских функций, триггеров и т. Д.
  10. Вам нужно отслеживать, кто сделал вставки / обновления / удаления? Это может поддерживаться несколькими различными способами в схеме, некоторые из которых имеют довольно слабый IMO (например, сохранение столбца DeletedFlag в каждой таблице).
1 голос
/ 22 июля 2011

Для начала я бы предложил стоимость лицензий на базу данных, хостинг, ожидаемую пропускную способность (запрос), ожидаемые типы / объем хранимых данных, рассмотрим, как запрашивается база данных (локальная или веб) - в конечном счете внутренняя илижизненно важна производительность в миллисекундах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...