Я предпочитаю DomainName || 'Я БЫ'. (т.е. имя_домена + идентификатор)
DomainName часто, но не всегда, совпадает с TableName.
Проблема с ID сама по себе заключается в том, что он не масштабируется вверх. Когда у вас есть около 200 таблиц, каждая с первым столбцом с именем ID, данные начинают выглядеть одинаково. Если вы всегда называете ID именем таблицы, это немного помогает, но не так сильно.
DomainName & ID может использоваться для именования внешних ключей, а также первичных ключей. Когда иностранные ключи названы в честь столбца, на который они ссылаются, это может оказать мнемоническую помощь. Формально привязывать имя внешнего ключа к ключу, на который он ссылается, нет необходимости, поскольку ограничение ссылочной целостности установит ссылку. Но это очень удобно, когда дело доходит до чтения запросов и обновлений.
Иногда имя_домена || «ID» нельзя использовать, потому что в одной и той же таблице будет два столбца с одинаковым именем. Пример: Employees.EmployeeID и Employees.SupervisorID. В этих случаях я использую RoleName || 'ID', как в примере.
И последнее, но не менее важное: я использую натуральные ключи, а не синтетические, когда это возможно. Есть ситуации, когда естественные ключи недоступны или ненадежны, но есть множество ситуаций, когда естественный ключ является правильным выбором. В этих случаях я позволяю естественному ключу взять имя, которое оно, естественно, будет иметь. В этом имени часто даже нет букв «ID». Пример: OrderNo, где No - это сокращение от «Number».