Как создать базу данных для шаблонного ведения журналов? - PullRequest
2 голосов
/ 31 января 2010

В моем веб-приложении я хочу регистрировать определенные пользовательские взаимодействия и т. Д., Например, «Пользовательская ABC присоединилась к группе XYZ». Поэтому я хочу настроить механизм ведения журнала, который регистрируется в базе данных Mssql. Сейчас я пытаюсь найти хороший дизайн базы данных для достижения гибкости.

Прежде всего, я не хочу регистрировать такие строки, как «Пользовательская ABC присоединилась к группе XYZ». Я хотел бы отделить содержимое "ABC" и "XYZ" от шаблона. Поэтому я ищу базу данных шаблонов.

Примерно так:
таблица : UserLog

IDLog int primary key
IDUserLogTemplate int foreign key
date datetime

таблица UserLogTemplate

IDUserLogTemplate int PK
TemplateString varchar (like 'User {0} joined Group {1}')
IDUserLogType int FK

таблица UserLogType

IDUserLogType int PK
Name varchar
Description varchar

таблица UserLogContent

IDUserLogContent int PK
IDLog int FK
PlaceholderPosition int (like '0')
Value varchar (like "ABC")

Я думаю, что эта структура базы данных даст мне достаточно гибкости для добавления / удаления / редактирования определенных типов журналов (например, «Пользовательская ABC сделала что-то еще»). Например, я мог бы хотеть добавить некоторую информацию к определенной записи журнала для будущих записей. Поэтому я создаю новый UserLogTemplate, который ссылается на тот же UserLogType. Так я бы достиг нисходящей совместимости.

Это дизайн базы данных, который будет работать? Вы предлагаете лучший дизайн?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2010

Я решил использовать дизайн БД, опубликованный мной.

0 голосов
/ 31 января 2010

Я не просто пытаюсь взломать одно из своих приложений, но я разработал инструмент регистрации приложений, который позволяет вам хранить пользовательскую мета-информацию вместе с отдельными записями журнала. Он работает с использованием CouchDB, документно-ориентированной базы данных (нереляционной, то есть SQL Server), которая значительно упрощает хранение и извлечение информации со слабой структурой.

Если вам интересно, проверьте его на GitHub и / или отправьте мне электронное письмо. Я хотел бы помочь вам начать с этим, и, возможно, это было бы намного лучше для такого типа "не очень структурированных" данных.

...