Есть ли стандарты именования primary key, foreign key в БД?
Нет, но если будешь придерживаться в проекте единого стиля именования все будут только рады
stackoverflow.com/questions/199498/foreign-key-nam...
Хотя оракл имеет oracle-base.com/articles/misc/naming-conventions.php
Ну и просто люди любят учить как нужно https://launchbylunch.com/posts/2014/Feb/16/sql-na...стоит ли заводить отдельную таблицузависит от ORM, частоты изменения значений и использования СУБД, как бекенда для обработки (иногда извращаются и пишут в БД код).
Первое - стандарт вырабатывается в рамках компании или приложения. Вместо алиасов можно использовать формат table.field; например - city.id. Это лучше, чем засовывание названия таблицы в идентификатор.
Второе - всегда все хранить в базе, не смешивать логику и данные. Что будет, если у вас будет база одной версии, а логика - другой версии?