Forum Webscript.Ru

Общие => Базы данных => Тема начата: Jmen от 24 Июня 2004, 11:35:07

Название: Need help!!!
Отправлено: Jmen от 24 Июня 2004, 11:35:07
Есть база данных на 10000 строк, есть мемберы, которые подписываются на эти строки (мембер1 - 100 строк, мембер2 - 300 строк и т.д.), колличество мемберов не ограниченно. Каждому мемберу посылается раз в неделю
колличество строк на которое он подписался, но каждый раз ему присылаются разные строки.
Нужно сделать таблицу в которую заносилась бы информация о строках посланных каждому мемберу, чтобы при отсылке в следуюций раз можно было бы узнать какие строки уже посланы.

Вопрос: какую сделать таблицу в которой было бы соблюдено равновесие между размером таблицы и колличеством полей?

Покаместь ничего кроме этого в голову не приходит:
|ид_строки|мембер|

но получается что таблица будет выглядеть так:
1|мембер1
1|мембер2
1|мембер3
2|мембер1
3|мембер2
3|мембер5 и т.д.

В результате таблица получается большой и время её обработки огромное.

Жду дельных советов.
Заранее огромное спасибо!
Название: Need help!!!
Отправлено: Phoinix от 24 Июня 2004, 12:52:09
Jmen

3 таблицы:
1. Таблица строк (что такое "подписался на строки" рассудит история);
2. Таблица пользователей;
3. Таблица связи пользователей и строк + дополнительное поле с отметкой о том, что письмо отправлено;
Название: Need help!!!
Отправлено: Jmen от 24 Июня 2004, 13:01:35
Прошу прощения - подписался на колличество строк.

Тогда если строк в таблице 1 - 100000,
то таблица 3 скоро будет выглядеть как
row1|user1|sent
.......................
row100000|user1|sent
row1|user2|sent
.......................
row100000|user2|sent
и т.д., то есть размер будет гигантским!!!

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

Пример.
Есть user1 (100 строк) и user2 (300 строк)
С первым мылом user1 получит строки с номерами 1-100,
а user2 с номерами 101-400.
Со вторым мылом user1 получит строки с номерами 401-500, а user2 с номерами 501-800.
С третьим мылом user1 получит строки с номерами 801-900,
а user2 с номерами 901-1200.
и т.д.

Как это сделать?
Заранее благодарю.
Название: Need help!!!
Отправлено: Phoinix от 24 Июня 2004, 13:59:14
Сохраняй где-нибудь последний номер высланной строки, а при повторных рассылках отталкивайся от него...
Название: Need help!!!
Отправлено: Jmen от 24 Июня 2004, 14:20:43
Ок, спасибо я всё понял.