L'inconvénient principal de l'utilisation de ID, Nom etc. est que vous devez les qualifier avec le nom de la table si vous écrivez une jointure SQL qui chevauche deux tables. Malgré cela, je trouve qu'il est beaucoup plus concis et lisible d'utiliser simplement l'identifiant et le nom - votre code et vos tableaux vont «couler» beaucoup plus facilement au-delà des yeux. Plus facile à taper et moins redondant. Et en tapant SELECT Business.Name FROM ... dans une requête SQL n'est pas vraiment plus gênant que de taper SELECT BusinessName FROM ...
En général, si je me trouve en répétant des informations sémantiques, il m'invite à chercher des moyens d'éliminer ou au moins reconnaître pourquoi il se répète. Cela pourrait être à petite échelle (noms d'attributs) ou à grande échelle (modèles de comportement ou structures de classes communes).