Я создаю таблицу под названием news_feed
, это будет регистрировать все действия, которые выполняет пользователь.
Скажем, я хочу сохранить
Пользователь1234 удалил статью412 в полдень
Затем мне нужна таблица, подобная
timestamp | user_id | subject_type | subject_id | method
.
было бы 5 возможных методов log,
methods = add/edit/delete/update/report
и позволяет сказать 2 возможных объекта subject_type
subjects = article/comment
Я знаю, что могу сделать свой собственный ключ, где 0 = добавить, 1 = удалить и т.д., но это сделало бы мои запросы громоздкими для использования/записи, так как мне нужно было бы советоваться с ключом. Существует ли тип MySql, который может быстро считывать множество идентичных значений? это ENUM
? как его использовать?!!
Да, для этого можно использовать тип ENUM
.
CREATE TABLE news_feed (
...
methods ENUM('add', 'edit', 'delete', 'update', 'report'),
subjects ENUM('article', 'comment')
);
Затем просто используйте, как и любое другое поле, например
SELECT * FROM news_feed WHERE methods='add';
Документация для типа ENUM имеет гораздо больше информации.
Почему бы вам не взглянуть на docs? Здесь хорошо объяснили.