powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / мониторинг для сотовых компаний
6 сообщений из 6, страница 1 из 1
мониторинг для сотовых компаний
    #36830466
Нужно создать базу для мониторинга телефонных разговоров.
Главные данные такие:
Код: plaintext
1.
2.
3.
4.
5.
номер записи
номер вызывающего абонента
номер вызываемого абонента
продолжительность разговора
стоимость одной минуты
дата

номера состоят из 10 символов, перые 3 - оператор, затем 2 символа - регион.
Запросы будут с группировкой по операторам и регионам.
должна быть табличка справочная типа
Код: plaintext
1.
2.
3.
4.
5.
 1   914  МТС
 2   91401  МТС МОсква
 3   91402  МТС Питер
 4   903  Билайн
 5   90331  Билайн Москва
 6   90301  Билайн Питер

как грамотно спроектировать главную таблицу? изучаю форум и доку, пока так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
id primary key  // идентификатор
oper1             // идентификатор оператора вызывающего абонента
operreg1        //идентификатор оператора и региона вызывающего абонента
num1            //номер (т.е. последние  5  символов номера)
oper2           //nj же для вызываемого
operreg2
num2
talktime   //продолжительность разговора
castmin   //стоимость минуты
talkdate  //дата

полный номер при необходимости вычисляется (или вычислимое поле попробовать сделать)
плюс индексы по oper1, operreg1,oper2,operreg2

но чота не нравится, может разбивать полный номер на три поля оператор-регион-номер и писать в них не идентификаторы а реальные числа? и сделать состовной индекс по полям oper1, operreg1?

почему то в методичке тогда написано, что в справочной таблице должен быть идентификатор?

извиняюсь за много букв)
...
Рейтинг: 0 / 0
мониторинг для сотовых компаний
    #36830483
или всетаки хранить просто номера

Код: plaintext
1.
2.
3.
4.
5.
id primary key  // идентификатор
num1            //полный номер вызывающего абонента
num2           //то же для вызываемого
talktime   //продолжительность разговора
castmin   //стоимость минуты
talkdate  //дата

создать индекс по функции substr(num1,3) и по функции substr(num1,5) - итого 4 индекса
а потом делать group by substr(num1,3) или group by substr(num1,5), как потребуется

пожалста, подскажите, как правильнее?
...
Рейтинг: 0 / 0
мониторинг для сотовых компаний
    #36831539
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
новыйчайникномера состоят из 10 символов, перые 3 - оператор, затем 2 символа - регион.Если это настоящая база, а не учебная, то там все намного сложнее. Блоки номеров могут быть очень разные, например, размером в 1000 номеров. Или граница может не совпадать с цифрой, например, abcdef0000-abcdef6999 - это один регион/оператор, abcdef7000-abcdef9999 - другой.
...
Рейтинг: 0 / 0
мониторинг для сотовых компаний
    #36831547
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, эти блоки могут иногда меняться. И наверняка попадутся такие номера, которые невозможно разделить на части исходя из имеющихся на текущий момент данных.
...
Рейтинг: 0 / 0
мониторинг для сотовых компаний
    #36832204
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
новыйчайник
номера состоят из 10 символов, перые 3 - оператор, затем 2 символа - регион.
Запросы будут с группировкой по операторам и регионам.
должна быть табличка справочная типа
Код: plaintext
1.
2.
3.
4.
5.
 1   914  МТС
 2   91401  МТС МОсква
 3   91402  МТС Питер
 4   903  Билайн
 5   90331  Билайн Москва
 6   90301  Билайн Питер

как грамотно спроектировать главную таблицу? изучаю форум и доку, пока так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
id primary key  // идентификатор
oper1             // идентификатор оператора вызывающего абонента
operreg1        //идентификатор оператора и региона вызывающего абонента
num1            //номер (т.е. последние  5  символов номера)
oper2           //nj же для вызываемого
operreg2
num2
talktime   //продолжительность разговора
castmin   //стоимость минуты
talkdate  //дата

полный номер при необходимости вычисляется (или вычислимое поле попробовать сделать)
плюс индексы по oper1, operreg1,oper2,operreg2В справочние лучьше диапазоны номеров, а в основной просто номера.

Ну и не экономьте, семёрочку-то в начале поставьте, вдруг ненароком за границу-то позвонит кто :-)
...
Рейтинг: 0 / 0
мониторинг для сотовых компаний
    #36832241
база учебная, задача на проектирование таблицы, предполагается, что она очень большая и запросы в основном с группировкой по операторам, по операторам-регионам, плюс условие - данные либо за день, либо за какой-то период

не могу решить, лучше хранить полные номера и
новыйчайник
создать индекс по функции substr(num1,3) и по функции substr(num1,5) - итого 4 индекса
а потом делать group by substr(num1,3) или group by substr(num1,5), как потребуется

или хранить в полях и делать составной индекс (оператор, регион)?

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


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