Вот как я это делаю:
- Имена таблиц в нижнем регистре, подчеркивания используются для разделения слов и в единственном числе (например,
foo
,foo_bar
и т.д. - У меня вообще (не всегда) есть автоинкремент PK. Я использую следующее соглашение:
tablename_id
(например,foo_id
,foo_bar_id
и т.д.). - Когда таблица содержит столбец, который является внешним ключом, я просто копирую имя столбца этого ключа из любой таблицы, из которой он получен. Например, скажем, таблица
foo_bar
имеет FKfoo_id
(гдеfoo_id
- это PKfoo
). - При определении FK для обеспечения ссылочной целостности я использую следующее:
tablename_fk_columnname
(например, продолжая пример 3, это будетfoo_bar_foo_id
). Поскольку это комбинация имени таблицы/имени столбца, она гарантированно будет уникальной в базе данных. - Я упорядочиваю столбцы следующим образом: PKs, FKs, а затем остальные столбцы в алфавитном порядке.
Есть ли лучший, более стандартный способ сделать это?