Розглядаючи це з точки зору офіційного словника даних, я б назвав елемент даних 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
стовпців з інших таблиць, а не використовуватись як зовнішній ключ в іншій таблиці, але знову ж таки ... Я міг би просто передумати, іноді ви ніколи не можете сказати. Ось у чому річ: моделювання даних - це частково мистецтво, частково наука.