Некоторые вещи, которые я хотел бы иметь в виду. Убедитесь, что в каждой таблице есть способ уникальной идентификации записей (вы сэкономите на этом неисчислимые часы боли). Нормализуйте, но не объединяйте большие многостолбцовые естественные ключи, если только вы не хотите, чтобы все было медленно Вместо этого используйте цифровой ключ, который автоматически создается в родительской таблице.
Да, подумайте о видах запросов и отчетов, которые вам понадобятся для запуска. Подумайте о расширяемости. Может показаться, что вам не нужно больше 10 столбцов продуктов в таблице заказов, но что происходит, когда вам нужно 11. Лучше иметь таблицу заказов и таблицу деталей заказов.
Убедитесь, что все правила целостности данных включены в базу данных. Не все изменения данных происходят из пользовательского интерфейса, и мне пришлось попытаться исправить слишком много плохо испорченных баз данных, потому что дизайнеры решили, что все правила можно поместить в графический интерфейс.
Наиболее важные вещи, которые следует учитывать при проектировании, это, во-первых, как обеспечить целостность данных (если данные бессмысленны, тогда база данных бесполезна), и, во-вторых, как обеспечить производительность. Не используйте объектную модель для проектирования реляционной базы данных, если вы не хотите плохой производительности.
Следующая важная вещь - это защита и защита данных. Пользователи никогда не должны иметь прямого доступа к таблицам базы данных. Если ваш дизайн требует динамического SQL, он должен иметь такой доступ. Это плохо с точки зрения потенциального взлома с помощью таких вещей, как атаки с использованием SQL-инъекций, но, что еще более важно, это открывает вашу базу данных для мошенничества внутренних людей. Есть ли поля для шифрования данных?
(информация о кредитной карте, пароли и номера социального страхования относятся к числу предметов, которые никогда не следует хранить в незашифрованном виде). Как вы планируете это делать и как вы планируете проводить аудит дешифрования, чтобы гарантировать, что люди не дешифруют, когда им не нужно просматривать данные. Есть ли какие-то законные обручи, через которые вы должны пройти ( HIPPA и Sarbanes Oxley приходят на ум)?