Добавление атрибутов метаданных в таблицу MySQL
Я хотел бы добавить пользовательские атрибуты в таблицу MySQL, которую я могу прочитать через php.
эти атрибуты не должны мешать самой таблице - они в основном доступны php-коду во время генерации кода, и эти атрибуты должны находиться в самой БД.
Что-то похожее по концепции на отражение .NET.
поддерживает ли MySQL что-нибудь подобное?
спасибо.
2 ответов
когда вы CREATE
или ALTER
таблица, вы можете добавить COMMENTS
- один для таблицы в целом и для каждого столбца. Чтобы получить эти комментарии, Вы можете запросить базу данных INFORMATION_SCHEMA
, в частности, столбцы INFORMATION_SCHEMA.COLUMNS.COLUMNS_COMMENT
и INFORMATION_SCHEMA.TABLE.TABLE_COMMENTS
. INFORMATION_SCHEMA
предоставляет множество метаданных о ваших базах данных, включая данные, предоставленные DESCRIBE
заявления. Любой пользователь, имеющий доступ для чтения к определенной таблице или столбцу, может прочитать соответствующие метаданные из INFORMATION_SCHEMA
, но не может читать метаданные о таблицах, которые они не имеют доступа для.
это выглядит естественным для хранения пользовательских метаданных в INFORMATION_SCHEMA
, но это не так гибко, как вам может понадобиться, потому что вы можете хранить только один COMMENT
в колонке. Если это ограничительно для вашей цели или вам нужно регулярно обновлять данные, вы должны следовать @Dark Falcon и создать дополнительную таблицу.
какие атрибуты? Поскольку вы упомянули отражение, я предполагаю, что вы пытаетесь что-то узнать о структуре таблицы? Вы поняли, что команды, которые говорят вам о структуре таблицы SQL и возвращать результаты, как и любой другой запрос? Это позволяет прогамматически обрабатывать результаты, например, описания таблицы. Это то, что ты ищешь?