Добавление атрибутов метаданных в таблицу 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 и возвращать результаты, как и любой другой запрос? Это позволяет прогамматически обрабатывать результаты, например, описания таблицы. Это то, что ты ищешь?