Большинство приложений, особенно бизнес-приложений, содержат в себе хотя бы какую-то бизнес-логику. Я бы сказал, что бизнес должен быть не в базе данных, а в приложении. Вы можете поместить ссылочную целостность в базу данных, так как я считаю, что это хороший выбор, но бизнес-логика должна быть только в приложении.
По иерархии классов, я полагаю, вы имеете в виду, что вам всегда приходится заканчивать наследованием в вашей объектной модели, тогда ответ - нет. Но скорее всего, вы часто можете найти какой-то общий код, выделить его и создать базовый класс, содержащий общий код.
Если вы согласны со мной в том, что бизнес-логика должна быть не в базе данных, а в приложении, тогда я рекомендую вам обратиться к шаблону проектирования MVC, чтобы руководствоваться вашим дизайном. Вы найдете ваш дизайн, содержащий классы или объекты. Ваши VCL будут представлять ваш View, и вы можете настроить отображение классов вашей модели непосредственно в таблицу базы данных, т. Е. Каждый член в классе в модели соответствует полю в таблице базы данных (опять же, это норма, но будет исключение) где эта простота не применяется). Затем вам понадобится слой для обработки CRUD (создание, чтение, обновление, удаление) классов Model для таблиц базы данных. В итоге вы получите «многоуровневое» приложение, которое легче поддерживать и улучшать.