Skip to content
Anton edited this page Jul 15, 2016 · 4 revisions

Описание

На данной странице описаны правила именования таблиц, колонок, индексов и внешних ключей.

Настройки

Используйте InnoDB как стандартный Storage Engine для MySQL.

Использование

Именование таблиц

  • при именовании таблиц следует использовать underscore нотацию
  • название таблиц обязательно должно быть в нижнем регистре
  • существительные следует использовать во множественном числе: users, pages, и т.д.
  • для обозначения связанной таблицы один-ко-многим следует использовать имя основной таблицы как первую часть, и имя связи как вторую часть: users -> users_actions
  • для обозначения таблиц для связи многое-ко-многим следует использовать имена связываемых таблиц без изменений: users -> users_roles <- roles
  • допускает использование префиксов для набора таблиц под определенный функционал: acl_roles, acl_privileges, и т.д.

Примеры:

acl_roles
acl_privileges
pages
users

Именование полей

  • при именование полей следует использовать CamelCase нотацию для того, чтобы у нас не было конфликтов со стандартами кодирования в PHP

  • для обозначения связанных полей следует использовать единственное число: pages.userId -> users.id

  • для хранения даты создания следует создать поле created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

  • для хранения даты последней правки следует создать поле updated timestamp NULL DEFAULT NULL

Именование внешних связей

  • при именовании связей следует использовать underscore нотацию
  • обязательный постфикс _fk
  • первая часть имени должна содержать описание текущей таблицы
  • вторая часть - описание связанной таблицы
  • далее - имена полей в индексе

Примеры:

auth_users_id_fk
users_actions_users_id_fk

Именование индексов

  • при именовании индексов следует использовать underscore нотацию
  • для уникальных индексов следует использовать постфикс _uindex

Database standards
Requirements
Server
Notes
HTML and CSS
JavaScript
Database
Modules
ACL
API
Cache
Categories
Comments
Media
Options
Pages
System
Tests
Twitter
Users

Clone this wiki locally