Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.08.2013, 17:52
Интересующийся
Отправить личное сообщение для frutality Посмотреть профиль Найти все сообщения от frutality
 
Регистрация: 30.08.2012
Сообщений: 26

Имеет ли смысл хранить даты в отдельной таблице?
Доброго всем времени суток!

Сейчас раздумываю над архитектурой нового приложения. Реляционная БД. В БД несколько сущностей: пользователи, посты, комментарии и т.д.

У каждой записи имеется поле "Дата добавления [в базу]". Также предполагается хранить даты входов на сайт, даты смены пароля, смены личной информации. Даты изменения постов и комментариев.

Первая мысль по датам была какая: в каждой таблице есть поле для даты. Там и хранить. Но вторая мысль (когда подумал про даты изменения, даты входов) - вынести все в отдельную таблицу. Логи. В таблице несколько полей:

действие (добавил, изменил, вошел на сайт, сменил пароль)
id юзера
IP-адрес
тип сущности (пост, комментарий)
id записи (поста, комментария)
дата действия

Имеет ли это смысл? Какие подводные камни?
Ответить с цитированием
  #2 (permalink)  
Старый 14.08.2013, 23:34
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

почему нет, ты художник, как удобнее, так и твори, лишь бы нормализация работала
действие и тип сущности (в твоей терминологии) сделать внешними ключами
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2013, 07:08
Интересующийся
Отправить личное сообщение для frutality Посмотреть профиль Найти все сообщения от frutality
 
Регистрация: 30.08.2012
Сообщений: 26

Благодарю за ответ.
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2013, 09:00
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

хранить настоящие логи в базе данных?
можно конечно, но не принято
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

Цитата:
даты изменения, даты входов
последние даты храните в таблице (если они вообще нужны), все остальные будут в логах
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2013, 09:40
Интересующийся
Отправить личное сообщение для frutality Посмотреть профиль Найти все сообщения от frutality
 
Регистрация: 30.08.2012
Сообщений: 26

mta88,
Как сказать, настоящие или нет. Что вы имеете в виду?

Спасибо за ссылки, прочел с удовольствием (в том числе комментарии). Насколько я понял, люди предпочитают хранить логи в файлах, на случай, если что-то случится с БД, или вообще с сервером; чтобы иметь возможность узнать, что произошло.

Ошибки, warning'и, exception'ы - все это я не планирую хранить в БД. Все это логгируется фреймворком в файлы.

Я планирую хранить в базе используемую мной информацию. Например, я захочу показать пользователю (или администратору) последние пять входов в систему, а не один. Из БД взять их проще, чем из файла. А если файлов логов несколько? (а их точно будет несколько, чтобы файл не раздулся до гигабайтов).

А если мне нужны логи транзакций некой внутренней валюты сайта между пользователями? Я считаю, что такие вещи следует хранить в БД. Я пока не увидел причины, по которой стоит хранить эти данные в файлах.
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2013, 10:02
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

то что вы описали пожалуй действительно удобней хранить в обычной базе данных
как вам удобнее
есть еще нереляционные базы, но я о них ничего не знаю, даже не запускал ни одной
Ответить с цитированием
  #7 (permalink)  
Старый 15.08.2013, 10:33
Интересующийся
Отправить личное сообщение для frutality Посмотреть профиль Найти все сообщения от frutality
 
Регистрация: 30.08.2012
Сообщений: 26

Спасибо за ответ.

Убедился окончательно, что особых подводных камней нет.

Про нереляционные базы я слышал только одно: все данные хранятся парами "ключ-значение", но тоже особо этой темой не интересовался никогда.
Ответить с цитированием
  #8 (permalink)  
Старый 15.08.2013, 19:39
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

да, статьи более вопрошающие/рассуждающие нежели отвечающие
и лично мне не пришло бы в голову хранить комменты/посты в базе, а даты их создания/изменения в файле
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имеет ли смысл разделение на фреймы ? RUVATA Общие вопросы Javascript 20 29.08.2011 14:05