Когда мы создавали первую версию нашего собственного фреймворка ( Inon Datamanager ), я сделал так, чтобы он считывал уже существующие таблицы SQL и автоматически генерировал из них объекты Java.
Когда мои коллеги, пришедшие из Smalltalkish, создали вторую версию, они начали с объектов и затем автоматически сгенерировали таблицы.
На самом деле, они совсем забыли о SQL-части, пока я не вернулся и не добавил ее. Но в настоящее время мы просто запускаем триггер при запуске приложения, который перебирает объектную модель, проверяет, существуют ли таблицы и все нужные столбцы, и создает их, если нет. Очень удобно.
Это оказалось намного проще, чем вы могли ожидать - если ваш любимый инструмент не поддерживает аналогичный процесс, вы, возможно, могли бы написать его через пару часов - предполагая, что реляционное сопоставление с объектом относительно просто.
Но суть в том, что, похоже, это зависит от того, являетесь ли вы культурным объектом или человеком, работающим в базе данных - вы можете рассматривать любой из них как авторитетный источник.