Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2017, 12:29   #1
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию Как организовать отметку о прочтении?

Добрый день.
Есть такая ситуация: в базе 1000 пользователей, нужно всем отправить 1000 сообщений и каждый должен поставить отметку "прочитано".
На ум приходит только одно - добавить в базу 1 000 000 строк формата "(int)userID, (int)messageID, (bool)read" и отмечать прочитано сообщение или нет. Может можно как то проще?
Или отправлять 1000 раз 1000 одинаковых сообщений и отмечать

И получим 1001000 строк в таблице в 1 варианте и 1000000 строк во втором

Последний раз редактировалось maksim_serg; 23.09.2017 в 12:40.
maksim_serg вне форума Ответить с цитированием
Старый 23.09.2017, 13:28   #2
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
всем отправить 1000 сообщений
Это вы отправляйте на почте ?
Цитата:
Сообщение от maksim_serg Посмотреть сообщение
И получим 1001000 строк в таблице в 1 варианте и 1000000 строк во втором
Экспортировать данные из БД в Excel-е и отправить Excel-овски файл

Последний раз редактировалось xxbesoxx; 23.09.2017 в 13:33.
xxbesoxx вне форума Ответить с цитированием
Старый 23.09.2017, 14:09   #3
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Не на почту. В личный кабинет на сайте
maksim_serg вне форума Ответить с цитированием
Старый 24.09.2017, 00:02   #4
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
В личный кабинет на сайте
Можно и на сайте
xxbesoxx вне форума Ответить с цитированием
Старый 24.09.2017, 09:54   #5
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
Можно и на сайте
Вы гений! Именно так я и сделаю
maksim_serg вне форума Ответить с цитированием
Старый 24.09.2017, 10:08   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

И каждый из юзеров будет читать эту тыщу?
Цитата:
добавить в базу 1 000 000 строк формата "(int)userID, (int)messageID, (bool)read"
это и есть самый простой способ, разве что поле read не нужно, и не сразу создавать это мегаколичество записей, а в момент прочтения каждой из них и сам факт наличия такой записи и является отметкой о прочтении
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.09.2017, 13:26   #7
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
Вы гений! Именно так я и сделаю
это была шутка. Я думаю xxbesoxx просто ничего не понял.
Цитата:
Сообщение от Аватар Посмотреть сообщение
это и есть самый простой способ
а если я еще решу разослать 10 000 сообщений? это получится уже 11 000 000 строк? Я об объеме база данных. Понятно, что в реальной ситуации будет менее 100 пользователей и сообщений штук 100, просто интересуют общие принципы организации
maksim_serg вне форума Ответить с цитированием
Старый 24.09.2017, 14:13   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
а если я еще решу разослать 10 000 сообщений
А если еще и юзеров будет миллиард ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.09.2017, 15:59   #9
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А если еще и юзеров будет миллиард ))
не будет. Ориентировочно 100 юзеров и 10 сообщений в месяц каждому. Просто интересно как сделать если бы было 1000 пользователей и каждому по 100 сообщений в день))
maksim_serg вне форума Ответить с цитированием
Старый 25.09.2017, 08:41   #10
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,149
По умолчанию

Так
Цитата:
вам шашечки или ехать?
Весь вопрос в том, для чего весь сыр-бор...
1) Если вам именно важно чтоб было ясно какое сообщение было прочитано, значит именно так и придется отмечать, а для скорости сделайте поля индексами
пару миллионов таких записей - это ерунда .... не нагрузка
2) вам важно какое сообщение было прочитано последним, считая что если прочитано сообщение №10000, значить все предыдущие уже прочитаны - тогда проще: "(int)userID, (DateTime или Timestamp)read" то есть когда пользователь посл раз прочитал сообщение, а у сообщений тоже есть дата создания - считаем все сообщения младше Read прочитанными ... соотв меняем дату прочтения именно только в момент прочтения
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[РЕШЕНО] не могу найти ошибку при прочтении файла clav9nski Python 15 10.07.2017 22:51
Отчет о прочтении Email письма Veiron ASP.NET 6 09.11.2015 00:36
Выставить отметку о прочтении на потовом сервере WorldMaster C# (си шарп) 0 18.01.2013 11:30
Вопросы возник. при прочтении учебника по Assembler BlackFishSQL Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 32 30.03.2012 00:25
Электронное письмо с уведомлением о прочтении Климент Свободное общение 12 26.05.2011 11:40