powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Схема бд с уведомлениями
25 сообщений из 34, страница 1 из 2
Схема бд с уведомлениями
    #40131564
yozzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Подскажите, не могу сообразить, как можно связать уведомления, события и пользователей организации на схеме? По времени события всем пользователям внутри организации должно отправляться уведомление
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131600
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yozzi
Подскажите, не могу сообразить, как можно связать уведомления, события и пользователей

Связать можно как угодно, вопрос в том - как нужно.

Чтобы понять, как нужно, стоит внятно сформулировать взаимоотношения между ними. Например: "ёжик ходит в тумане" - взаимоотношения между ёжиками и туманами.
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131606
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Госуслуги чтоле?
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131626
yozzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
Чтобы понять, как нужно, стоит внятно сформулировать взаимоотношения между ними. Например: "ёжик ходит в тумане" - взаимоотношения между ёжиками и туманами.


По времени события всем пользователям внутри организации должно отправляться уведомление, получается, что взаимоотношение между событиями, уведомлениями и пользователями организации, или нет?)
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131627
yozzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Relic Hunter
Госуслуги чтоле?
Учебный проект
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131638
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Organisation

Садись, два.
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131645
yozzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L_argo
Organisation

Садись, два.


"An organization, or organisation is an entity—such as a company, an institution, or an association"

Садитесь, два)))
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131651
yozzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yozzi
softwarer
Чтобы понять, как нужно, стоит внятно сформулировать взаимоотношения между ними. Например: "ёжик ходит в тумане" - взаимоотношения между ёжиками и туманами.


По времени события всем пользователям внутри организации должно отправляться уведомление, получается, что взаимоотношение между событиями, уведомлениями и пользователями организации, или нет?)


Когда наступает дата события (день рождения, праздник) должно отправляться соответствующее уведомление всем пользователям, которые состоят в организации

так может точнее будет
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131659
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сообщение (Notification) может возникать только по событию (Event), то нужно добавить event_id в Notifications


Таким образом вы автоматом свяжите Notification с нужными пользователями через события


При этом останется проблема с добавлением/удалением пользователей из Organization (например, пользователь добавился после event-а)

С ходу видится два решения.

1. Добавить даты добавления/удаления пользователей
2. Денормализовать данные и добавить таблицу UserNotifications, которую заполнять в момент отправки (формирования списка отправки) сообщений
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131668
yozzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex
Если сообщение (Notification) может возникать только по событию (Event), то нужно добавить event_id в Notifications


Таким образом вы автоматом свяжите Notification с нужными пользователями через события


При этом останется проблема с добавлением/удалением пользователей из Organization (например, пользователь добавился после event-а)

С ходу видится два решения.

1. Добавить даты добавления/удаления пользователей
2. Денормализовать данные и добавить таблицу UserNotifications, которую заполнять в момент отправки (формирования списка отправки) сообщений


Так будет верно?
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131679
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yozziПо времени события всем пользователям внутри организации должно отправляться
уведомление, получается, что взаимоотношение между событиями, уведомлениями и
пользователями организации, или нет?)

Нет. Пользователи - отдельно, события отдельно. Уведомления вообще в базе ни к чему.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131688
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
yozziПо времени события всем пользователям внутри организации должно отправляться
уведомление, получается, что взаимоотношение между событиями, уведомлениями и
пользователями организации, или нет?)

Нет. Пользователи - отдельно, события отдельно. Уведомления вообще в базе ни к чему.

Почему?

Смотря что за база?
Если уведомления это часть системы, очень даже нужно.


yozzi
Так будет верно?


На одно событие - может быть несколько уведомлений (не разным пользователям, а именно несколько уведомлений)?
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131692
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLexПочему?

Потому что "по времени события всем пользователям внутри организации должно
отправляться уведомление". То есть связи между событиями, уведомлениями и
пользователями - нет. Событие равнозначно уведомлению, поэтому уведомление не
является самостоятельной сущностью и таблица ему не нужна. Подтверждение о
доставке/прочтении/понимании уведомления, которое могло бы сделать из него
сущность и связать с пользователем, тоже не предусмотрено.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131695
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Событие равнозначно уведомлению

Только до тех пор, пока у уведомления нет свойственных именно ему атрибутов.
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131698
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
msLexПочему?

Потому что "по времени события всем пользователям внутри организации должно
отправляться уведомление". То есть связи между событиями, уведомлениями и
пользователями - нет. Событие равнозначно уведомлению, поэтому уведомление не
является самостоятельной сущностью и таблица ему не нужна. Подтверждение о
доставке/прочтении/понимании уведомления, которое могло бы сделать из него
сущность и связать с пользователем, тоже не предусмотрено.

А если событие переносится? Должно ли быть повторное уведомление?
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131699
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yozzi,

Если хотите понять сущности и связи, то обратитесь к книге Ричарда Баркера. CASE*Method. Моделирование взаимосвязей между сущностями. Будет достаточно осилить третью главу.

Есть сущности и связи между ними. Самое сложное - это описать словами связи между сущностями.

Например, опишем связь между ОРГАНИЗАЦИЕЙ и СОБЫТИЕМ:

В каждой ОРГАНИЗАЦИИ может происходить одно или несколько СОБЫТИЙ.
Каждое СОБЫТИЕ должно относиться к одной и только одной ОРГАНИЗАЦИИ.

Теперь опишем связь между СОБЫТИЕМ и УВЕДОМЛЕНИЕМ:

С каждым СОБЫТИЕМ должно посылаться одно или несколько УВЕДОМЛЕНИЙ.
Каждое УВЕДОМЛЕНИЕ является реакцией на одно или несколько СОБЫТИЙ.


Пример 1.
Событие: Праздник П.
Код: plaintext
1.
2.
3.
4.
Уведомление: Тип: поздравительное по случаю праздника П;
             Адресат: все сотрудники организации О;
             Текст: Руководство организации О поздравляет сотрудников с праздником П,
                    В текст подставить название организации и ФИО руководителей этой организации.
С событием "Праздник П" связано одно УВЕДОМЛЕНИЕ.
Это уведомление относится к одному событию "Праздник П".


Например 2,
Событие: День рождения сотрудника.
Уведомления: информационное и поздравительное.

1. Информационное уведомление:
Код: plaintext
1.
2.
3.
4.
    Тип: информационное по случаю дня рождения сотрудника;
    Адресат: все сотрудники организации О.
    Текст: Сегодня у С день рождения, не забудьте поздравить своего коллегу.
           В текст подставить ФИО сотрудника.
2. Поздравительное уведомление
Код: plaintext
1.
2.
3.
4.
   Тип: поздравительное по случаю дня рождения сотрудника.
   Адресат: сотрудник
   Текст:   Поздравляем с днем рождения.
            В текст подставить ФИО сотрудника
С СОБЫТИЕМ "День рождения сотрудника" связано два УВЕДОМЛЕНИЯ.
Оба этих УВЕДОМЛЕНИЯ относится к одному СОБЫТИЮ "День рождения сотрудника".

Что мы сделали?
Определили два события и три уведомления и связали между собой события и уведомления.

Теперь рассмотрим сегодняшний день. Пусть сегодня день рождения у Иванова. На это событие мы должны послать два уведомления. Этот факт нужно зарегистрbвать. Для это будет нужна отдельная сущность, может быть не одна. Но это уже сами.
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131700
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yozzi
Когда наступает дата события (день рождения, праздник) должно отправляться соответствующее уведомление всем пользователям, которые состоят в организации

Теперь эти слова нужно отобразить на механизмы СУБД. "наступает дата события" - это, по всей видимости, проверяется job-ом или каким-то другим scheduler-ом. А вот с "отправлением соответствующего уведомления" нужно разобраться подробнее. Что под этим подразумевается? Это может быть, например, просто дёрганье почтового клиента в стиле "выстрелил и забыл", тогда это не оставит следов в базе. А может быть, следы должны остаться. Тогда где-то в базе нужны данные об "отправляемых уведомлениях". Продумываете: какие атрибуты у них нужны. И т. п.
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131735
yozzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

yozziПо времени события всем пользователям внутри организации должно отправляться
уведомление, получается, что взаимоотношение между событиями, уведомлениями и
пользователями организации, или нет?)

Нет. Пользователи - отдельно, события отдельно. Уведомления вообще в базе ни к чему.


Нужно будет хранить где то «реакции» на уведомления, что то типа «участвую»/«не участвую»
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131736
yozzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex
Dimitry Sibiryakov
пропущено...

Нет. Пользователи - отдельно, события отдельно. Уведомления вообще в базе ни к чему.


Почему?

Смотря что за база?
Если уведомления это часть системы, очень даже нужно.


yozzi
Так будет верно?


На одно событие - может быть несколько уведомлений (не разным пользователям, а именно несколько уведомлений)?


На одно событие одно уведомление, если имеется ввиду текст сообщения
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131740
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учитывая "игрушечность" базы, я бы предложил вести её разработку параллельно с
разработкой приложения, дорабатывая по мере возникновения проблем. Для серьёзных
систем это плохой стиль, но для первой базы - в самый раз.

Бритва Оккама, требующая "не создавать сущности без необходимости" в данном
случае может использоваться буквально.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131741
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yozzi
На одно событие одно уведомление

Тогда связь event-notification 1:1


yozzi
Нужно будет хранить где то «реакции» на уведомления, что то типа «участвую»/«не участвую»


Это нужно как-то отразить
Например добавить поле response в UserNotifications


Еще, судя по вашей схеме
У вас пользователь может одновременно состоять в нескольких organization, а так же один event может проходить в нескольких organization
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131742
yozzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex
yozzi
На одно событие одно уведомление

Тогда связь event-notification 1:1


yozzi
Нужно будет хранить где то «реакции» на уведомления, что то типа «участвую»/«не участвую»


Это нужно как-то отразить
Например добавить поле response в UserNotifications


Еще, судя по вашей схеме
У вас пользователь может одновременно состоять в нескольких organization, а так же один event может проходить в нескольких organization


Да, это верно, пользователь может состоять в нескольких организациях и ивенты могут проходить в нескольких организациях.
Если связь 1:1, то нужна ли она? Или же тогда объединить в одну таблицу
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131743
yozzi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Учитывая "игрушечность" базы, я бы предложил вести её разработку параллельно с
разработкой приложения, дорабатывая по мере возникновения проблем. Для серьёзных
систем это плохой стиль, но для первой базы - в самый раз.

Бритва Оккама, требующая "не создавать сущности без необходимости" в данном
случае может использоваться буквально.


Ну до уведомлений я не дошел) но думаю уже распланировать
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131744
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yozzi
Да, это верно, пользователь может состоять в нескольких организациях и ивенты могут проходить в нескольких организациях.
Если связь 1:1, то нужна ли она? Или же тогда объединить в одну таблицу


Т.к. это отдельная бизнес сущность, появляющаяся не одновременно с созданием event-а, я бы ее вынес в отдельную таблицу (как сейчас на схеме).
...
Рейтинг: 0 / 0
Схема бд с уведомлениями
    #40131786
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yozzi
Dimitry Sibiryakov

Учитывая "игрушечность" базы, я бы предложил вести её разработку параллельно с
разработкой приложения, дорабатывая по мере возникновения проблем. Для серьёзных
систем это плохой стиль, но для первой базы - в самый раз.

Бритва Оккама, требующая "не создавать сущности без необходимости" в данном
случае может использоваться буквально.


Ну до уведомлений я не дошел) но думаю уже распланировать


Я думаю, это относится и к событиям. Что такое Event?

1. Это перечень известных событий, которые могут произойти в организации или даже за пределами этой организации. Для каждого такого события определяются уведомления из списка уведомлений.

2. Это событие, которое реально произошло. Из пункта 1 известно, какие уведомления нужно отослать в ответ на это событие.


Если появляется новое событие, на которое нужно реагировать уведомлениями, то это событие добавляем в список событий и определяем реакцию на него в виде уведомлений из списка уже существующих или созданием новых уведомлений.

Попробуйте разграничить эти два понимания Eventа. Здесь два понятия, для которых требуется два различных термина.

Для описания процессов не обязательно рисовать схемы. Попробуйте сначала описать процессы словами. Лучше всего вслух. Когда получится связно сказать о чем-то, перенесите это на бумагу. Это итерационный процесс. Приведите примеры данных. Подробности в 22429887 .
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Схема бд с уведомлениями
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]