Розглядаючи це з точки зору офіційного словника даних, я б назвав елемент даних invoice_ID. Як правило, ім'я елемента даних буде унікальним у словнику даних і в ідеалі матиме одне й те саме ім'я протягом усього часу, хоча іноді можуть вимагатися додаткові кваліфікаційні терміни на основі контексту, наприклад, названий елемент даних employee_IDможе використовуватися двічі в організаційній діаграмі і, отже, кваліфікується як supervisor_employee_IDі subordinate_employee_IDвідповідно.
Очевидно, що умовні принципи іменування є суб’єктивними та мають значення стилю. Я вважаю керівні принципи ISO / IEC 11179 корисною відправною точкою.
Що стосується СУБД, я бачу таблиці як колекції entites (за винятком тих, які коли-небудь містять лише один рядок, наприклад, таблиця cofig, таблиця констант тощо), наприклад таблиця, де мій employee_IDключ, буде названа Personnel. Тож відразу TableNameIDконвенція для мене не працює.
Я бачив TableName.ID=PK TableNameID=FKстиль, який використовується у великих моделях даних, і маю сказати, я вважаю його трохи заплутаним: я набагато більше люблю, щоб ім'я ідентифікатора було однаковим, тобто не змінювало ім'я залежно від таблиці, в якій воно трапляється. Щось, на що слід звернути увагу вищезгаданий стиль, здається, використовується в магазинах, які додають стовпець IDENTITY(автоматичне збільшення) до кожної таблиці, одночасно уникаючи природних та складених ключів у зовнішніх ключах. Ці магазини, як правило, не мають офіційних словників даних і не будують на основі моделей даних. Знову ж таки, це лише питання стилю і питання, на яке я особисто не підписуюсь. Тож, зрештою, це не для мене.
З усього сказаного, я бачу випадок, коли іноді випадає кваліфікатор з імені стовпця, коли ім'я таблиці надає контекст для цього, наприклад, названий елемент employee_last_nameможе стати просто last_nameв Personnelтаблиці. Обгрунтування тут полягає в тому, що домен є "прізвищами людей" і, швидше за все, він буде UNIONредагуватися за допомогою last_nameстовпців з інших таблиць, а не використовуватись як зовнішній ключ в іншій таблиці, але знову ж таки ... Я міг би просто передумати, іноді ви ніколи не можете сказати. Ось у чому річ: моделювання даних - це частково мистецтво, частково наука.