Это зависит от того, для чего используется база данных.
Во многих приложениях (веб-приложениях или нет) база данных тесно связана с этим приложением, поскольку она служит для нее постоянным хранилищем. Тогда база данных концептуально является частью приложения, поэтому она спроектирована вместе (и вы предполагаете, что никакая другая программа не получит значительного доступа или обновления этой базы данных). Кстати, постоянство может быть достигнуто с помощью других средств, кроме базы данных, например, простых текстовых файлов, двоичных файлов (в частности, индексированных файлов, таких как GDBM ), git (или других VCS), каталогов или деревьев файлов, разделов сырых дисков, выделенного оборудования (например, вспышка), удаленные файловые системы, чекпойнтингметоды. Для баз данных, разработанных для и с одним приложением, вы должны заботиться об общих шаблонах поиска и обновления и проектировать схему базы данных (и индексировать!) С учетом их.
В некоторых ситуациях база данных сама по себе является основным и независимым активом и разработана априори для использования несколькими различными приложениями (и даже будущими). Тогда это должно быть разработано независимо (и намного более тщательно).
В частности, некоторые веб-приложения - это просто веб-интерфейсы для существующих баз данных.
Во многих случаях (например, некоторые вики) приводят к тому, что данные важнее и ценнее, чем приложения, использующие их. Вы можете позаботиться о том, чтобы сделать его будущим и иметь возможность легко его развивать (например, используя или определяя текстовые и универсальные - предпочтительно стандартизированные и документированные - форматы для резервного копирования и восстановления).
Я понял, что (ПРАВИЛЬНО) дизайн базы данных - это не маленькая задача ...
Читайте также о NoSQL , базы данных документов , ориентированных на , баз данных ключ-значение , управление знаниями , представления знаний и рассуждений , онтологии , экспертных систем , бизнес - правила приближаются , ERP , CMS . Возможно, рассмотрите возможность использования REDIS , MongoDB и т. Д.