В моем веб-приложении я хочу зарегистрировать определенные взаимодействия с пользователем и т. Д., Например «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. Вот как я мог бы добиться снижения совместимости.
Это дизайн базы данных, который будет работать? Вы предлагаете лучший дизайн?