Что было первым: процесс или данные, используемые этим процессом? Я знаю, что это вопрос типа "курица или яйцо", но в случае с программным обеспечением, я считаю, что это процесс.
Например, вы можете создавать свою модель данных постепенно, внедряя по одному сценарию использования за раз с постоянством в памяти (или чем-либо настолько простым в реализации). Когда вы почувствуете, что реализовали достаточно сценариев использования, чтобы очертить основные сущности, вы можете заменить постоянство в памяти реальной базой данных, а затем продолжить совершенствовать схему по мере продвижения вперед, по одному сценарию использования за раз.
Это снимает фокус с базы данных и перемещает ее в суть проблемы: бизнес-правила. Если вы начнете с реализации бизнес-правил, вы в конечном итоге обнаружите (кстати, в процессе, очень похожем на Natural Selection), какие данные действительно нужны бизнесу. Если вы начнете с моделирования базы данных, без обратной связи о том, действительно ли нужны эти данные (или в этом формате, или на этом уровне нормализации и т. Д.), Вы либо в конечном итоге будете делать много поздних корректировок в схему (которая может потребовать сложных процедур миграции, если бизнес уже работает с ней), или вам придется внедрить «обходные пути» в бизнес-правилах, чтобы компенсировать несоответствующую модель данных.
TL; DR: База данных зависит от бизнеса - она определяется ими. Вам не понадобятся данные, если у вас нет процесса, который работает с ним (отчет также является процессом). Сначала внедрите процесс, и вы найдете, какие данные ему нужны. Сначала смоделируйте данные, и вы сможете просто посчитать, сколько предположений было неверным, когда вы впервые смоделировали их.
Немного не в тему, но очень важно: рабочий процесс, который я описываю, часто используется вместе с очень важными практиками, такими как «Самое простое, что могло бы сработать», разработка через тестирование и фокус на отделении вашей архитектуры от деталей, которые встать на вашем пути (подсказка: база данных). Что касается последнего, этот разговор довольно хорошо обобщает идею.