столбцы базы данных и нормализация внешнего ключа - PullRequest
7 голосов
/ 03 декабря 2011

Я создаю новую систему (lamp - Ubuntu Server, PHP 5.3, MySQL 5.5, apache 2, Redis) для моей компании (например, версия 2.0)

Я хочу сделать это правильно и сделать это лучше.

Я хочу использовать innodb, и я хочу знать, существует ли стандарт для именования столбцов и внешних ключей.

например:

table_a
 table_a_id
 table_a_name
 etc...

таким образом, когда вы покинули объединение, его очень легко отличить, но если у вас длинное имя, написать sql может быть больно.

table_a
 id
 name
 etc...

Таким образом, таблицу очень легко понять, но вы должны использовать псевдоним или имя таблицы каждый раз, когда вы покидаете соединение.

называет database.table.column частью нормализации базы данных?

Ответы [ 2 ]

11 голосов
/ 03 декабря 2011

соглашение об именах базы данных, таблиц, столбцов, ключей, внешних ключей не имеет ничего общего с нормализацией базы данных.

хотя, я рекомендую везде соблюдать одинаковую структуру соглашения об именах.все мои имена довольно стандартны, одно слово или, если это фраза, она разделяется подчеркиванием, без цифр и специальных символов.то же самое для столбцов, ключей и fk (за исключением числа), и я всегда использую множественные числа (редко у вас есть только 1 дБ, 1 таблица с 1 столбцом и 1 строкой)

вот что я делаю:

databases: companies
tables: clients, clients_products, products
column: id, name, address, city
key: name
unique key: name

таким образом, когда вы запрашиваете ваши данные, очень ясно, что вы запрашиваете или что вы ищете.

0 голосов
/ 03 декабря 2011

называет элемент database.table.column нормализацией базы данных?

Нет.Грубо говоря, нормализация связана с повышением целостности данных путем реструктуризации таблиц на основе определения определенных видов зависимостей между атрибутами.

Имена таблиц и столбцов являются вашим API.

ISO 11179, Информационные технологии - Реестры метаданных (MDR) , международный стандартдля представления метаданных в реестре .Хотя он нацелен на семантику, а не на таблицы и столбцы, многие разработчики баз данных используют его как руководство для именования таблиц и столбцов.В крупных организациях это действительно ценно.(Функциональная зависимость, которая является частью нормализации, является семантической вещью.)

Может оказаться полезным изучить разницу между именем таблицы и классом объекта.( Класс объектов в этом смысле не имеет ничего общего с объектно-ориентированным программированием. Это технический термин в ISO 11179.)

Обзорная часть части 5 (PDF) , Принципы присвоения имен и идентификации , доступны онлайн. Википедия может быть более устойчивой ссылкой.(Не может.)

...