Давайте комментировать базы данных
Многие из нас сталкиваются с необходимостью ковыряться в движках сайтов, изменять их, дорабатывать, и так далее. Каждый, конечно, знает, что свой код нужно комментировать, дабы потом такие вот «ковырятели» или сами авторы по прошествии длительного времени могли легко разобрать, что в этом коде происходит. Очень мало кто, конечно, это делает (сам грешу). Но сердце почти любого веб-приложения — это база данных. С неё всё начинается, на ней всё завязано. Знали ли вы, что её тоже можно снабдить столь полезными порой комментариями?
Пост будет касаться только 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 таблицы во всплывающей подсказке при наведении на имя поля, а также при просмотре содержимого таблицы под названием поля.
Немалый опыт разбора чужих движков сайтов меня убедил: прокомментированные базы данных было бы в разы проще и быстрее понимать! Порой смотришь на поля с непонятными аббревиатурами в названии, на таблицы с вообще загадочным содержимым, и копаешься в скриптах, пытаясь разобрать, какова же их роль. Зачастую на это уходит столько времени, что даже обидно. Но почему-то, ни разу в многочисленных БД я не встретил, ни единого комментария.
Чёрт с ним с кодом (хотя правильно индентировать его обязательно нужно, и я ума не приложу, что заставляет некоторых делать это через одно место, путая всех и вся). Но база данных — это, же перекрёсток всех дорог в приложении. Давайте снабжать её комментариями?