Давайте комментировать базы данных

3 июня 2010 г.

Многие из нас сталкиваются с необходимостью ковыряться в движках сайтов, изменять их, дорабатывать, и так далее. Каждый, конечно, знает, что свой код нужно комментировать, дабы потом такие вот «ковырятели» или сами авторы по прошествии длительного времени могли легко разобрать, что в этом коде происходит. Очень мало кто, конечно, это делает (сам грешу). Но сердце почти любого веб-приложения — это база данных. С неё всё начинается, на ней всё завязано. Знали ли вы, что её тоже можно снабдить столь полезными порой комментариями?

Пост будет касаться только MySQL, поскольку работать приходилось только с ней. Но я уверен, что в других СУБД также предусмотрены аналогичные возможности.

В MySQL можно снабжать комментариями таблицы и поля. Для этого используется ключевое слово COMMENT. Например, можно задать комментарии при создании таблицы таким образом:

CREATE TABLE IF NOT EXISTS `action_log` (
...
`log_operation` varchar(256) NOT NULL COMMENT 'Short latin denotation of the operation performed',
...
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Log of actions performed in admin panel';

Либо можно задать комментарии уже существующим полям и таблицам через ALTER.

В phpMyAdmin для этого предоставлен удобный интерфейс. Комментарий к таблице задаётся во вкладке Operations (панель Table options, поле Table comments). Комментарий к полю задаётся при его создании (последнее поле, Comment) либо при редактировании (аналогично). Отображаются комментарии к таблицам в левом фрейме в списке таблиц, при наведении на одну из них во всплывающей подсказке. Комментарии к полям отображаются во вкладке Structure таблицы во всплывающей подсказке при наведении на имя поля, а также при просмотре содержимого таблицы под названием поля.

Немалый опыт разбора чужих движков сайтов меня убедил: прокомментированные базы данных было бы в разы проще и быстрее понимать! Порой смотришь на поля с непонятными аббревиатурами в названии, на таблицы с вообще загадочным содержимым, и копаешься в скриптах, пытаясь разобрать, какова же их роль. Зачастую на это уходит столько времени, что даже обидно. Но почему-то, ни разу в многочисленных БД я не встретил, ни единого комментария.

Чёрт с ним с кодом (хотя правильно индентировать его обязательно нужно, и я ума не приложу, что заставляет некоторых делать это через одно место, путая всех и вся). Но база данных — это, же перекрёсток всех дорог в приложении. Давайте снабжать её комментариями?

Теги:
рубрика Сайтостроение