Имеет ли смысл хранить даты в отдельной таблице?
Доброго всем времени суток!
Сейчас раздумываю над архитектурой нового приложения. Реляционная БД. В БД несколько сущностей: пользователи, посты, комментарии и т.д. У каждой записи имеется поле "Дата добавления [в базу]". Также предполагается хранить даты входов на сайт, даты смены пароля, смены личной информации. Даты изменения постов и комментариев. Первая мысль по датам была какая: в каждой таблице есть поле для даты. Там и хранить. Но вторая мысль (когда подумал про даты изменения, даты входов) - вынести все в отдельную таблицу. Логи. В таблице несколько полей: действие (добавил, изменил, вошел на сайт, сменил пароль) id юзера IP-адрес тип сущности (пост, комментарий) id записи (поста, комментария) дата действия Имеет ли это смысл? Какие подводные камни? |
почему нет, ты художник, как удобнее, так и твори, лишь бы нормализация работала
действие и тип сущности (в твоей терминологии) сделать внешними ключами |
Благодарю за ответ.
|
хранить настоящие логи в базе данных?
можно конечно, но не принято hungred.com/useful-information/best-way-log-details-database-or-file-log/ stackoverflow.com/questions/1160720/log-to-database-instead-of-log-files programmers.stackexchange.com/questions/92186/why-is-filesystem-preferred-for-logs-instead-of-rdbms Цитата:
|
mta88,
Как сказать, настоящие или нет. Что вы имеете в виду? Спасибо за ссылки, прочел с удовольствием (в том числе комментарии). Насколько я понял, люди предпочитают хранить логи в файлах, на случай, если что-то случится с БД, или вообще с сервером; чтобы иметь возможность узнать, что произошло. Ошибки, warning'и, exception'ы - все это я не планирую хранить в БД. Все это логгируется фреймворком в файлы. Я планирую хранить в базе используемую мной информацию. Например, я захочу показать пользователю (или администратору) последние пять входов в систему, а не один. Из БД взять их проще, чем из файла. А если файлов логов несколько? (а их точно будет несколько, чтобы файл не раздулся до гигабайтов). А если мне нужны логи транзакций некой внутренней валюты сайта между пользователями? Я считаю, что такие вещи следует хранить в БД. Я пока не увидел причины, по которой стоит хранить эти данные в файлах. |
то что вы описали пожалуй действительно удобней хранить в обычной базе данных
как вам удобнее есть еще нереляционные базы, но я о них ничего не знаю, даже не запускал ни одной |
Спасибо за ответ.
Убедился окончательно, что особых подводных камней нет. Про нереляционные базы я слышал только одно: все данные хранятся парами "ключ-значение", но тоже особо этой темой не интересовался никогда. |
да, статьи более вопрошающие/рассуждающие нежели отвечающие
и лично мне не пришло бы в голову хранить комменты/посты в базе, а даты их создания/изменения в файле :D |
Часовой пояс GMT +3, время: 18:42. |