Основной недостаток использования идентификатора, имени и т. Д. Заключается в том, что вы должны указывать их в качестве имени таблицы, если вы пишете соединение SQL, которое перекрывает две таблицы.
Несмотря на это, я считаю, что гораздо проще и понятнее просто использовать ID и Имя - ваш код и таблицы будут намного легче «перетекать» за глаза. Проще набрать и меньше излишним. И ввод SELECT Business.Name FROM ... в запросе SQL на самом деле не более хлопотно, чем ввод SELECT BusinessName FROM ...
В общем, если я обнаруживаю, что повторяю семантическую информацию, это заставляет меня искать способы ее устранения или, по крайней мере, распознавать, почему она повторяется. Это может быть как в небольшом масштабе (имена атрибутов), так и в большом масштабе (шаблоны поведения или общие структуры классов).