2010-01-30 3 views
2

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

Прежде всего, я не хочу записывать строки типа «User ABC join Group 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. Вот как я мог бы добиться снижения совместимости.

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

ответ

0

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

0

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

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

Смежные вопросы