powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Один источник данных и несколько потребителей с доп. атрибутами к данным
19 сообщений из 19, страница 1 из 1
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38133553
Pavel V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу помочь со следующей задачей. Есть система, в которую поступают телеметрические данные (по сути это одна табличка в БД с полями id, value и еще несколькими служебными). И есть несколько потребителей этих данных, которые преобразуют их в какой-то формат и пересылают дальше по собственному алгоритму. Мне необходимо отслеживать статус каждой записи - передана/не передана. В случае, когда потребитель данных был один, решалось всё простым добавлением поля status, в которое я записывал некоторое значение в случае успешной передачи. Когда же потребителей несколько, каждый из них должен вести собственный учет переданных данных, причем энергонезависимо, т.е. в БД.

Первое, что приходит в голову - это добавить в таблицу несколько полей status, и каждый из потребителей использует свое поле. Но такое решение мне не нравится, т.к. теряется гибкость (ограничение кол-ва потребителей).

Подскажите, пожалуйста, как правильно решается такая проблема?
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38133565
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel V.,

через дополнительную табличку статусов по потребителям и внешние ключи с транзакционностью операций по всей куче таблиц. В чём проблема? :)
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38133568
шм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
создай таблицу id_записи, id_потребителя, status
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38133603
Pavel V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, спасибо! Примерно так себе и представлял, но не мог до конца в голове оформить :)

Получается, на стадии приема данных надо создавать помимо основной записи соответствующие записи в таблице статусов для каждого потребителя?
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38133620
шм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не обязательно. лучше когда что-то сделаешь с записью тогда и записать в табл. статусов ее состояние
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38133628
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel V.Прошу помочь со следующей задачей. Есть система, в которую поступают телеметрические данные (по сути это одна табличка в БД с полями id, value и еще несколькими служебными). И есть несколько потребителей этих данных, которые преобразуют их в какой-то формат и пересылают дальше по собственному алгоритму. Мне необходимо отслеживать статус каждой записи - передана/не передана. В случае, когда потребитель данных был один, решалось всё простым добавлением поля status, в которое я записывал некоторое значение в случае успешной передачи. Когда же потребителей несколько, каждый из них должен вести собственный учет переданных данных, причем энергонезависимо, т.е. в БД.

Первое, что приходит в голову - это добавить в таблицу несколько полей status, и каждый из потребителей использует свое поле. Но такое решение мне не нравится, т.к. теряется гибкость (ограничение кол-ва потребителей).

Подскажите, пожалуйста, как правильно решается такая проблема?
Решается путем ясной формулировки задачи. Ее пока нет.
Если речь об одном признаке, который Вы назвали status, то достаточно просто объявить связь между двумя типами сущностей Измерение и Потребитель.
Приходится еще раз всем, и, в первую очередь, модераторам предложить: переименуйте раздел в "Проектирование реляционных БД". Потому что, все здесь мыслят исключительно "табличками"))
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38133673
Pavel V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
шмне обязательно. лучше когда что-то сделаешь с записью тогда и записать в табл. статусов ее состояние
А как тогда будет выглядеть запрос со стороны потребителя к базе данных для получения всех записей, которые не были обработаны этим потребителем?

БредятинаРешается путем ясной формулировки задачи. Ее пока нет.
Вроде постарался подробно описать задачу, что именно не понятно?

БредятинаЕсли речь об одном признаке, который Вы назвали status, то достаточно просто объявить связь между двумя типами сущностей Измерение и Потребитель.
Да, признак один. Потребитель здесь скорее не сущность, а некая программа. Т.е. упрощенно можно представить так: одна программа принимает данные и складывает в базу, и несколько других программ подключается к той же базе и забирает эти данные для последующей обработки. И должна помечать уже обработанные.

БредятинаПриходится еще раз всем, и, в первую очередь, модераторам предложить: переименуйте раздел в "Проектирование реляционных БД". Потому что, все здесь мыслят исключительно "табличками"))
Прошу не сердиться, я хоть и программист, но с базами приходится иметь дело редко и пока нет возможности разобраться в этом вопросе, т.к. других заморочек хватает.
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38133756
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel V.шмне обязательно. лучше когда что-то сделаешь с записью тогда и записать в табл. статусов ее состояние
А как тогда будет выглядеть запрос со стороны потребителя к базе данных для получения всех записей, которые не были обработаны этим потребителем?

Как выглядеть - с left join'ом ;)
Не создавать связи сразу - это Вам правильно советуют. Иначе генератор данных должен "знать", сколько и каких потребителей данных будет - а это совершенно не его дело.
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38133854
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel V.шмне обязательно. лучше когда что-то сделаешь с записью тогда и записать в табл. статусов ее состояние
А как тогда будет выглядеть запрос со стороны потребителя к базе данных для получения всех записей, которые не были обработаны этим потребителем?
Вы начали формулировать задачу, постепенно. И один из пунктов гласит:
n. Каждое измерение должно быть обработано каждым потребителем.
Pavel V.БредятинаРешается путем ясной формулировки задачи. Ее пока нет.Вроде постарался подробно описать задачу, что именно не понятно?
См. выше, и это, по всей вероятности, не все.
Pavel V.БредятинаЕсли речь об одном признаке, который Вы назвали status, то достаточно просто объявить связь между двумя типами сущностей Измерение и Потребитель.
Да, признак один. Потребитель здесь скорее не сущность, а некая программа.
Нет. Вы хотите сказать что тип сущности Потребитель - это программа. Можно назвать этот тип сущности Программа-потребитель, например.
Pavel V.Т.е. упрощенно можно представить так: одна программа принимает данные и складывает в базу, и несколько других программ подключается к той же базе и забирает эти данные для последующей обработки. И должна помечать уже обработанные.
Опять не формально)
n. Каждое Измерение должно быть обработано каждой Программой-потребителем.
Вероятно, пока, так.
Pavel V.БредятинаПриходится еще раз всем, и, в первую очередь, модераторам предложить: переименуйте раздел в "Проектирование реляционных БД". Потому что, все здесь мыслят исключительно "табличками"))
Прошу не сердиться, я хоть и программист, но с базами приходится иметь дело редко и пока нет возможности разобраться в этом вопросе, т.к. других заморочек хватает.
Я написал модератору) Зачем мне сердиться?)
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38133860
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шмсоздай таблицу id_записи, id_потребителя, statusЕсли статус - передано/не передано, то этот столбец не нужен. Сам факт наличия в этой таблице записи уже должен говорить о том, что запись передана. (пояснения наверное больше для ТС :-)

Соответственно этот вопрос отпадает:
Pavel V.Получается, на стадии приема данных надо создавать помимо основной записи соответствующие записи в таблице статусов для каждого потребителя?
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38133876
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel V.А как тогда будет выглядеть запрос со стороны потребителя к базе данных для получения всех записей, которые не были обработаны этим потребителем?
В текущей постановке такой запрос не нужен. Так же не нужен и тип сущности Обработка измерений, который Вы хотите моделировать с помощью третьей таблицы.
При создании Измерения создается связь со всеми Программами-потребителями.
При успешной обработке связь удаляется:)
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38133927
474
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаОпять не формально)
n. Каждое Измерение должно быть обработано каждой Программой-потребителем.
Вероятно, пока, так.

Хм... А откуда это следует? Из описания задачи не выводится, что каждый Потребитель обрабатывает каждое Изменение.
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38134012
Pavel V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробую описать еще раз задачу.

1. Данные приходят и попадают в БД, после этого они не изменяются никогда - это результаты измерений с кучи однотипных приборов.
2. Есть несколько (пока не известно сколько) обработчиков этих данных. Каждый обработчик должен периодически забирать новые (после последнего запроса) данные и обрабатывать их, каким-то образом запоминая какие он уже обработал.

Пока писал родилась идея. Если все измерения попадают в таблицу с автоматически инкрементирующимся идентификатором, то можно просто в каждом обработчике запоминать последний обработанный id. В этом случае, правда, с исходными данными только линейно работать получится... В случае использования дополнительной таблицы можно произвольные выборки делать.
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38134066
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> несколько (пока не известно сколько) обработчиков этих данных

Вы, наверное, хотели написать "подписчиков"?

> в каждом обработчике запоминать последний обработанный id

Совершенно верно. Подписчик, время последнего сеанса, последний отданный идентификатор.

> с исходными данными только линейно работать получится

В смысле "линейно работать"? Отдать больше, чем есть в базе данных, вы не можете. Что с этими данными дальше будет делать подписчик - не ваша забота, насколько я понимаю.

> можно произвольные выборки делать

Вам и сейчас никто этого делать не запрещает.
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38134142
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
474БредятинаОпять не формально)
n. Каждое Измерение должно быть обработано каждой Программой-потребителем.
Вероятно, пока, так.

Хм... А откуда это следует? Из описания задачи не выводится, что каждый Потребитель обрабатывает каждое Изменение.
Описания задачи нет, и это может следовать только из того, что говорит в разных сообщениях автор:) Я предложил ему гипотетический n-ый пункт из будущего описания задачи.
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38134162
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel V.Попробую описать еще раз задачу.
1. Данные приходят и попадают в БД, после этого они не изменяются никогда - это результаты измерений с кучи однотипных приборов.
Слова "куча", "однотипны" и "приборы" вносят серьезную путаницу. Подтвердите, что Вы погорячились, и приборы и их типы учитывать никак не нужно .
Pavel V.2. Есть несколько (пока не известно сколько) обработчиков этих данных. Каждый обработчик должен периодически забирать новые (после последнего запроса) данные и обрабатывать их, каким-то образом запоминая какие он уже обработал.
Пока писал родилась идея. Если все измерения попадают в таблицу с автоматически инкрементирующимся идентификатором, то можно просто в каждом обработчике запоминать последний обработанный id.
Неверная идея. Поскольку не определено, что значит "последний обработанный". Ведь ДО этого УСПЕШНО обработанного могут быть НЕ УСПЕШНО ОБРАБОТАННЫЕ:) Или не могут? Это тоже нигде не сформулировано.
Pavel V.В случае использования дополнительной таблицы можно произвольные выборки делать.
Опять неверно говорите. Вы хотите сказать, что хотели бы использовать и тип сущности Обработка измерений. Это имеет смысл, если предполагаются какие-то свойства этого типа сущности хранить в БД. До сих пор эти свойства не определены. И каких-либо запросов просто не может быть. Вероятно, Вы предполагаете, что свойства этого типа сущности, все-таки, нужны в БД.
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38134190
Pavel V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Приборы учитывать не надо. Можно считать, что это показания термометра за окном раз в минуту.
2. Данные сейчас обрабатываются последовательно, т.е. пока не обработаем какую-то порцию, к новой не переходим.
3. Свойство нужно только одно - обработано показание или нет.

По поводу линейной/не линейной работы я имел в виду возможность сделать произвольную выборку необработанных обработчиком показаний данных (например, с 10-00 по 12-00) и отметить их обработанными. После этого я бы мог взять показания с 8-00 до 9-00. В этом случае вариант с идентификатором не пройдет.
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38134319
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel V.1. Приборы учитывать не надо. Можно считать, что это показания термометра за окном раз в минуту.
2. Данные сейчас обрабатываются последовательно, т.е. пока не обработаем какую-то порцию, к новой не переходим.
3. Свойство нужно только одно - обработано показание или нет.

По поводу линейной/не линейной работы я имел в виду возможность сделать произвольную выборку необработанных обработчиком показаний данных (например, с 10-00 по 12-00) и отметить их обработанными. После этого я бы мог взять показания с 8-00 до 9-00. В этом случае вариант с идентификатором не пройдет.
13862531
...
Рейтинг: 0 / 0
Один источник данных и несколько потребителей с доп. атрибутами к данным
    #38134438
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> линейной/не линейной работы

Дружище, у вас жуткая каша в голове. В одном случае вы говорите о пакетной обработке, в другом - об обработке каждого элемента пакета. Вы понимаете, что это взаимоисключающие определения?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Один источник данных и несколько потребителей с доп. атрибутами к данным
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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