|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
Доброго времени суток! Подскажите, не могу сообразить, как можно связать уведомления, события и пользователей организации на схеме? По времени события всем пользователям внутри организации должно отправляться уведомление ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 21:11 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
yozzi Подскажите, не могу сообразить, как можно связать уведомления, события и пользователей Связать можно как угодно, вопрос в том - как нужно. Чтобы понять, как нужно, стоит внятно сформулировать взаимоотношения между ними. Например: "ёжик ходит в тумане" - взаимоотношения между ёжиками и туманами. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 04:43 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
Госуслуги чтоле? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 06:25 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
softwarer Чтобы понять, как нужно, стоит внятно сформулировать взаимоотношения между ними. Например: "ёжик ходит в тумане" - взаимоотношения между ёжиками и туманами. По времени события всем пользователям внутри организации должно отправляться уведомление, получается, что взаимоотношение между событиями, уведомлениями и пользователями организации, или нет?) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 10:46 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
Relic Hunter Госуслуги чтоле? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 10:46 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
Organisation Садись, два. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 11:14 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
L_argo Organisation Садись, два. "An organization, or organisation is an entity—such as a company, an institution, or an association" Садитесь, два))) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 11:39 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
yozzi softwarer Чтобы понять, как нужно, стоит внятно сформулировать взаимоотношения между ними. Например: "ёжик ходит в тумане" - взаимоотношения между ёжиками и туманами. По времени события всем пользователям внутри организации должно отправляться уведомление, получается, что взаимоотношение между событиями, уведомлениями и пользователями организации, или нет?) Когда наступает дата события (день рождения, праздник) должно отправляться соответствующее уведомление всем пользователям, которые состоят в организации так может точнее будет ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 11:43 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
Если сообщение (Notification) может возникать только по событию (Event), то нужно добавить event_id в Notifications Таким образом вы автоматом свяжите Notification с нужными пользователями через события При этом останется проблема с добавлением/удалением пользователей из Organization (например, пользователь добавился после event-а) С ходу видится два решения. 1. Добавить даты добавления/удаления пользователей 2. Денормализовать данные и добавить таблицу UserNotifications, которую заполнять в момент отправки (формирования списка отправки) сообщений ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 12:43 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
msLex Если сообщение (Notification) может возникать только по событию (Event), то нужно добавить event_id в Notifications Таким образом вы автоматом свяжите Notification с нужными пользователями через события При этом останется проблема с добавлением/удалением пользователей из Organization (например, пользователь добавился после event-а) С ходу видится два решения. 1. Добавить даты добавления/удаления пользователей 2. Денормализовать данные и добавить таблицу UserNotifications, которую заполнять в момент отправки (формирования списка отправки) сообщений Так будет верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 13:14 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
yozziПо времени события всем пользователям внутри организации должно отправляться уведомление, получается, что взаимоотношение между событиями, уведомлениями и пользователями организации, или нет?) Нет. Пользователи - отдельно, события отдельно. Уведомления вообще в базе ни к чему. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 13:53 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov yozziПо времени события всем пользователям внутри организации должно отправляться уведомление, получается, что взаимоотношение между событиями, уведомлениями и пользователями организации, или нет?) Нет. Пользователи - отдельно, события отдельно. Уведомления вообще в базе ни к чему. Почему? Смотря что за база? Если уведомления это часть системы, очень даже нужно. yozzi Так будет верно? На одно событие - может быть несколько уведомлений (не разным пользователям, а именно несколько уведомлений)? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 14:21 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
msLexПочему? Потому что "по времени события всем пользователям внутри организации должно отправляться уведомление". То есть связи между событиями, уведомлениями и пользователями - нет. Событие равнозначно уведомлению, поэтому уведомление не является самостоятельной сущностью и таблица ему не нужна. Подтверждение о доставке/прочтении/понимании уведомления, которое могло бы сделать из него сущность и связать с пользователем, тоже не предусмотрено. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 14:38 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Событие равнозначно уведомлению Только до тех пор, пока у уведомления нет свойственных именно ему атрибутов. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 14:56 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov msLexПочему? Потому что "по времени события всем пользователям внутри организации должно отправляться уведомление". То есть связи между событиями, уведомлениями и пользователями - нет. Событие равнозначно уведомлению, поэтому уведомление не является самостоятельной сущностью и таблица ему не нужна. Подтверждение о доставке/прочтении/понимании уведомления, которое могло бы сделать из него сущность и связать с пользователем, тоже не предусмотрено. А если событие переносится? Должно ли быть повторное уведомление? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 15:00 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
yozzi, Если хотите понять сущности и связи, то обратитесь к книге Ричарда Баркера. CASE*Method. Моделирование взаимосвязей между сущностями. Будет достаточно осилить третью главу. Есть сущности и связи между ними. Самое сложное - это описать словами связи между сущностями. Например, опишем связь между ОРГАНИЗАЦИЕЙ и СОБЫТИЕМ: В каждой ОРГАНИЗАЦИИ может происходить одно или несколько СОБЫТИЙ. Каждое СОБЫТИЕ должно относиться к одной и только одной ОРГАНИЗАЦИИ. Теперь опишем связь между СОБЫТИЕМ и УВЕДОМЛЕНИЕМ: С каждым СОБЫТИЕМ должно посылаться одно или несколько УВЕДОМЛЕНИЙ. Каждое УВЕДОМЛЕНИЕ является реакцией на одно или несколько СОБЫТИЙ. Пример 1. Событие: Праздник П. Код: plaintext 1. 2. 3. 4.
Это уведомление относится к одному событию "Праздник П". Например 2, Событие: День рождения сотрудника. Уведомления: информационное и поздравительное. 1. Информационное уведомление: Код: plaintext 1. 2. 3. 4.
Код: plaintext 1. 2. 3. 4.
Оба этих УВЕДОМЛЕНИЯ относится к одному СОБЫТИЮ "День рождения сотрудника". Что мы сделали? Определили два события и три уведомления и связали между собой события и уведомления. Теперь рассмотрим сегодняшний день. Пусть сегодня день рождения у Иванова. На это событие мы должны послать два уведомления. Этот факт нужно зарегистрbвать. Для это будет нужна отдельная сущность, может быть не одна. Но это уже сами. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 15:01 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
yozzi Когда наступает дата события (день рождения, праздник) должно отправляться соответствующее уведомление всем пользователям, которые состоят в организации Теперь эти слова нужно отобразить на механизмы СУБД. "наступает дата события" - это, по всей видимости, проверяется job-ом или каким-то другим scheduler-ом. А вот с "отправлением соответствующего уведомления" нужно разобраться подробнее. Что под этим подразумевается? Это может быть, например, просто дёрганье почтового клиента в стиле "выстрелил и забыл", тогда это не оставит следов в базе. А может быть, следы должны остаться. Тогда где-то в базе нужны данные об "отправляемых уведомлениях". Продумываете: какие атрибуты у них нужны. И т. п. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 15:04 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov yozziПо времени события всем пользователям внутри организации должно отправляться уведомление, получается, что взаимоотношение между событиями, уведомлениями и пользователями организации, или нет?) Нет. Пользователи - отдельно, события отдельно. Уведомления вообще в базе ни к чему. Нужно будет хранить где то «реакции» на уведомления, что то типа «участвую»/«не участвую» ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 16:43 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
msLex Dimitry Sibiryakov пропущено... Нет. Пользователи - отдельно, события отдельно. Уведомления вообще в базе ни к чему. Почему? Смотря что за база? Если уведомления это часть системы, очень даже нужно. yozzi Так будет верно? На одно событие - может быть несколько уведомлений (не разным пользователям, а именно несколько уведомлений)? На одно событие одно уведомление, если имеется ввиду текст сообщения ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 16:44 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
Учитывая "игрушечность" базы, я бы предложил вести её разработку параллельно с разработкой приложения, дорабатывая по мере возникновения проблем. Для серьёзных систем это плохой стиль, но для первой базы - в самый раз. Бритва Оккама, требующая "не создавать сущности без необходимости" в данном случае может использоваться буквально. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 17:05 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
yozzi На одно событие одно уведомление Тогда связь event-notification 1:1 yozzi Нужно будет хранить где то «реакции» на уведомления, что то типа «участвую»/«не участвую» Это нужно как-то отразить Например добавить поле response в UserNotifications Еще, судя по вашей схеме У вас пользователь может одновременно состоять в нескольких organization, а так же один event может проходить в нескольких organization ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 17:06 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
msLex yozzi На одно событие одно уведомление Тогда связь event-notification 1:1 yozzi Нужно будет хранить где то «реакции» на уведомления, что то типа «участвую»/«не участвую» Это нужно как-то отразить Например добавить поле response в UserNotifications Еще, судя по вашей схеме У вас пользователь может одновременно состоять в нескольких organization, а так же один event может проходить в нескольких organization Да, это верно, пользователь может состоять в нескольких организациях и ивенты могут проходить в нескольких организациях. Если связь 1:1, то нужна ли она? Или же тогда объединить в одну таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 17:16 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Учитывая "игрушечность" базы, я бы предложил вести её разработку параллельно с разработкой приложения, дорабатывая по мере возникновения проблем. Для серьёзных систем это плохой стиль, но для первой базы - в самый раз. Бритва Оккама, требующая "не создавать сущности без необходимости" в данном случае может использоваться буквально. Ну до уведомлений я не дошел) но думаю уже распланировать ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 17:17 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
yozzi Да, это верно, пользователь может состоять в нескольких организациях и ивенты могут проходить в нескольких организациях. Если связь 1:1, то нужна ли она? Или же тогда объединить в одну таблицу Т.к. это отдельная бизнес сущность, появляющаяся не одновременно с созданием event-а, я бы ее вынес в отдельную таблицу (как сейчас на схеме). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 17:20 |
|
Схема бд с уведомлениями
|
|||
---|---|---|---|
#18+
yozzi Dimitry Sibiryakov Учитывая "игрушечность" базы, я бы предложил вести её разработку параллельно с разработкой приложения, дорабатывая по мере возникновения проблем. Для серьёзных систем это плохой стиль, но для первой базы - в самый раз. Бритва Оккама, требующая "не создавать сущности без необходимости" в данном случае может использоваться буквально. Ну до уведомлений я не дошел) но думаю уже распланировать Я думаю, это относится и к событиям. Что такое Event? 1. Это перечень известных событий, которые могут произойти в организации или даже за пределами этой организации. Для каждого такого события определяются уведомления из списка уведомлений. 2. Это событие, которое реально произошло. Из пункта 1 известно, какие уведомления нужно отослать в ответ на это событие. Если появляется новое событие, на которое нужно реагировать уведомлениями, то это событие добавляем в список событий и определяем реакцию на него в виде уведомлений из списка уже существующих или созданием новых уведомлений. Попробуйте разграничить эти два понимания Eventа. Здесь два понятия, для которых требуется два различных термина. Для описания процессов не обязательно рисовать схемы. Попробуйте сначала описать процессы словами. Лучше всего вслух. Когда получится связно сказать о чем-то, перенесите это на бумагу. Это итерационный процесс. Приведите примеры данных. Подробности в 22429887 . ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 20:19 |
|
|
start [/forum/topic.php?fid=32&msg=40131743&tid=1539758]: |
0ms |
get settings: |
16ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
81ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
523ms |
get tp. blocked users: |
1ms |
others: | 426ms |
total: | 1082ms |
0 / 0 |