|
|
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
нужно хранить whois данные вида: domain: SQL.RU nserver: ns01.parking.ru. nserver: ns11.parking.ru. state: REGISTERED, DELEGATED, VERIFIED person: Alex V Sibilev phone: +7916 e-mail: admin@sql.ru registrar: RUCENTER-REG-RIPN created: 2000.03.20 paid-till: 2010.04.01 source: TCI помимо хранения нужна будет обработка данных, например выборка по "person" как лучше организовать структуру хранения? чем грозит тупо все забить в text и делать выборку по LIKE fulltext index? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2010, 14:02 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
> как лучше организовать структуру хранения? Читайте стандарты, изучайте практику регистраторов. Иерархия проста: корневые DNS -> универсальные и национальные регистраторы -> все остальные. > чем грозит тупо все забить в text Из кучи мусора данные тоже можно извлекать. Если задача допускает мусор вместо данных - ничем не грозит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2010, 17:01 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
guest_20040621 Читайте стандарты, изучайте практику регистраторов. Иерархия проста: корневые DNS -> универсальные и национальные регистраторы -> все остальные. =) как это "изучайте практику регистраторов"? они нигде такую информацию не выкладывают guest_20040621 Из кучи мусора данные тоже можно извлекать. Если задача допускает мусор вместо данных - ничем не грозит. в приведенном примере мусора абсолютно нет, есть несистематизированные данные, систематизировать которые и необходимо с помощью правильно спроектированной базы на данный момент имеется две таблицы: id domain1SQL.RU2MYSQL.RU id whois1domain: SQL.RU\nnserver: ns01.parking.ru.\nnserver: ns11.parking.ru.....2domain: MYSQL.RU\nnserver: ns1.virtualhost.ru.\nnserver: ns2.virtualhost.ru.... это работает, и например поиск по WHERE LIKE %virtualhost.ru% тоже работает, но хотелось бы сделать "правильнее" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2010, 22:46 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
> они нигде такую информацию не выкладывают ;) Так если бы они раздавали свои базы данных, вашего вопроса бы не было. Воспользуйтесь whois сервисами разных регистраторов и сравните полученные результаты с RFC 1834. Также полезно будет изучение Bind и его конфигурационных файлов. > в приведенном примере мусора абсолютно нет Есть. Причем, куча мусора. > систематизировать которые и необходимо с помощью правильно спроектированной базы Ваша структура будет определяться способом использования базы данных. А именно - способом отражения изменений данных. Расскажите, как вы собираетесь регистрировать изменения и изменение каких данных наиболее критично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2010, 23:45 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
guest_20040621 Ваша структура будет определяться способом использования базы данных. А именно - способом отражения изменений данных. Расскажите, как вы собираетесь регистрировать изменения и изменение каких данных наиболее критично. поиск по базе и отображение изменений если что-то в хуизе было изменено, то вносится новая запись, старая остается прежней ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 00:26 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
> если что-то в хуизе было изменено, то вносится новая запись, старая остается прежней Понятно, что старая остается прежней. Вопрос не в этом. Скажем, нужны запросы типа "какие домены сменили хостеров за промежуток времени T"? Если нужны, то придется выделять и группировать нейм-серверы. Если сложные запросы не нужны, можно просто взять домен и последовательно писать ответы сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 01:18 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
guest_20040621 Понятно, что старая остается прежней. Вопрос не в этом. Скажем, нужны запросы типа "какие домены сменили хостеров за промежуток времени T"? Если нужны, то придется выделять и группировать нейм-серверы. Если сложные запросы не нужны, можно просто взять домен и последовательно писать ответы сервера. ну да, примерно такое и нужно в перспективном идеале, но данная задача представляется созданием отдельных таблиц под каждый параметр например nserver, person, phone nserver idnserver1ns01.parking.ru.2ns11.parking.ru.3ns1.virtualhost.ru. phone idphone1+79162+74950000000 тоесть в итоге получается чтоб получить хуиз домена, надо сделать выборку из каждой таблицы по отдельности, например SELECT FROM nserver, person, phone... я в правильном направлении двигаюсь или ошибочно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 01:32 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
> в перспективном идеале ;) Забавная формулировка. > данная задача представляется созданием отдельных таблиц под каждый параметр например nserver, person, phone Можно и так. > я в правильном направлении двигаюсь или ошибочно? Хороший вопрос. Я не знаю постановки задачи, чтобы на него ответить. Вы хотите различать никнейм Вася Пупкин и Пупкин Вася? Вам нужна группировка по владельцу? Вы допускаете использование других источников данных, отличных от whois серверов? Вообще, конечно, вместе с ответом нужно идентифицировать и whois сервер. Иначе получается, что вы знаете ответ на вопрос, но не знаете, кто ответил на этот вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 01:58 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
guest_20040621 Хороший вопрос. Я не знаю постановки задачи, чтобы на него ответить. Вы хотите различать никнейм Вася Пупкин и Пупкин Вася? Вам нужна группировка по владельцу? Вы допускаете использование других источников данных, отличных от whois серверов? Вообще, конечно, вместе с ответом нужно идентифицировать и whois сервер. Иначе получается, что вы знаете ответ на вопрос, но не знаете, кто ответил на этот вопрос. whois сервер вот http://www.ripn.net:8080/nic/whois/ конкретно никнейм Вася Пупкин и Пупкин Вася одно и тоже - в большинстве случаев идентифицирует одного владельца (исключения бывают но это не критично) да, группировка по владельцу и, или другим полям нужна до других источников пока рано думать(?), надо организовать что есть на данный момент ну хотя бы примерную структуру покажите :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 02:14 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
> whois сервер вот Если всегда будет один сервер, необходимости в идентификации нет. Если система будет расширена, идентификация потребуется. > да, группировка по владельцу и, или другим полям нужна Задача, насколько я понял, сводится к мониторингу изменений в доменах. Я бы поступил следующим образом: таблицы для каждой сущности в ответе сервера. Основная таблица - таблица доменов, остальные линкуются к ней с учетом даты ответа сервера (история изменений обсуждается здесь регулярно, поищите, есть конкретные варианты структуры). Полный ответ сервера я бы хранил для каждого изменения любой сущности. Логика примерно такая: получили ответ сервера, заполнили таблицы, храним этот ответ. Получили новый ответ сервера, сравнили со старым, если данные совпадают, выбрасываем его, если новые данные - добавляем соответствующие данные в таблицы, храним и старый ответ сервера, и новый, как основание для изменения данных. > до других источников пока рано думать(?) Вы спрашиваете? Это ваша задача, вам и решать. > ну хотя бы примерную структуру покажите Описал выше. Возможно, еще понадобятся технологические таблицы: график опроса сервера, статистика опросов и пр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 03:00 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
guest_20040621 Задача, насколько я понял, сводится к мониторингу изменений в доменах. Я бы поступил следующим образом: таблицы для каждой сущности в ответе сервера. Основная таблица - таблица доменов, остальные линкуются к ней с учетом даты ответа сервера (история изменений обсуждается здесь регулярно, поищите, есть конкретные варианты структуры). Полный ответ сервера я бы хранил для каждого изменения любой сущности. Логика примерно такая: получили ответ сервера, заполнили таблицы, храним этот ответ. Получили новый ответ сервера, сравнили со старым, если данные совпадают, выбрасываем его, если новые данные - добавляем соответствующие данные в таблицы, храним и старый ответ сервера, и новый, как основание для изменения данных. да, все верно, задача сводится к мониторингу изменений в доменах как быть например с полем nserver, их может быть и 2 и 6, как и несколько телефонов, как нормализовать такие данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 11:38 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
тоесть можно сделать еще доп. таблицу, например domain_nserver id_domain id_nserver111223 которая ссылается на nserver id_nserver nserver1 ns01.parking.ru.2 ns11.parking.ru.3 ns1.virtualhost.ru. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 11:55 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
> тоесть можно сделать еще доп. таблицу Да, так и есть. Вы правильно оценили переход от разбора ответа к нормализации. Off: если честно, не понимаю практической ценности разработки. Как часть, например, софтинки для мониторинга доступности доменов - да, необходимая компонента. Но тогда не очень логична привязка к конкретному серверу, поскольку нет никаких ограничений для размещения доменов в зоне .ru. Не поясните, если это не коммерческая тайна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 16:49 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
> как нормализовать такие данные? Обычное отношение 1:m посредством дополнительной таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 16:51 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
guest_20040621> тоесть можно сделать еще доп. таблицу Да, так и есть. Вы правильно оценили переход от разбора ответа к нормализации. Off: если честно, не понимаю практической ценности разработки. Как часть, например, софтинки для мониторинга доступности доменов - да, необходимая компонента. Но тогда не очень логична привязка к конкретному серверу, поскольку нет никаких ограничений для размещения доменов в зоне .ru. Не поясните, если это не коммерческая тайна? практическая ценность - мониторинг владельцев и хостеров ру-доменов, подобных сервисов достаточно в инете, но иногда не хватает различных фишек в одном месте stat.nic.ru 1stat.ru stat.reg.ru это не коммерческая разработка, скорее статистика "для себя" так как я полный профан в программировании и понимании реляционных баз, интересно проектировать бд и поработать с быстродействием больших баз в одной таблице уже более 30кк записей, через полгода станет 50кк для мониторинга доступности доменов нужно много ресурсов, я пока не располагаю таковыми не совсем понял, что имеется ввиду под "привязка к конкретному серверу", вроде нет никакой привязки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 17:16 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
> поработать с быстродействием больших баз Возможно, разочарую, но это маленькая база данных. > для мониторинга доступности доменов нужно много ресурсов, я пока не располагаю таковыми Аренда виртуального сервера ~20 баксов в месяц, т. е. общие затраты невелики и практически линейно зависят от количества необходимых точек мониторинга. > что имеется ввиду под "привязка к конкретному серверу", вроде нет никакой привязки Ответы разных whois серверов могут отличаться. И качественно (разные сущности) и количественно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 18:04 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
guest_20040621 > поработать с быстродействием больших баз Возможно, разочарую, но это маленькая база данных. > для мониторинга доступности доменов нужно много ресурсов, я пока не располагаю таковыми Аренда виртуального сервера ~20 баксов в месяц, т. е. общие затраты невелики и практически линейно зависят от количества необходимых точек мониторинга. > что имеется ввиду под "привязка к конкретному серверу", вроде нет никакой привязки Ответы разных whois серверов могут отличаться. И качественно (разные сущности) и количественно. whois база координационного центра росниирос первична и едина, если у кого-то данные отличаются это их проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 18:30 |
|
||
|
проектирование бд для хранения многопараметровых данных
|
|||
|---|---|---|---|
|
#18+
> whois база координационного центра росниирос первична и едина, если у кого-то данные отличаются это их проблема ;) Как бы это сформулировать... видите ли, русскоязычный сегмент Сети - настолько малая величина, что в исследованиях Сети им можно пренебречь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2010, 20:29 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36506643&tid=1542815]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
198ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 503ms |

| 0 / 0 |
