Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хранение информации, хочу использовать sql 
V
    Опции темы
alligator
Дата 30.8.2014, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Всем доброго времени суток.
Есть куча с сайтов с xml данными, собираю файлики через cUrl, по количеству их ~700
Вопрос,  как лучше хранить полученную информацию?
1. Парсить в массив и распихивать по полям\таблицам?
2. Просто хранить полученный XML? если да то в каком типе поля лучше хранить

в дальнейшем потребуется обработка информации из этих файлов

Это сообщение отредактировал(а) alligator - 30.8.2014, 16:03
PM MAIL   Вверх
ТоляМБА
Дата 30.8.2014, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 10
Всего: 252



alligator, если потом будешь обрабатывать, то первый вариант.
PM   Вверх
Aliance
Дата 1.9.2014, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Лучше бы более-менее полностью задачу описать. Что парсится, как используется потом, etc...
PM MAIL WWW ICQ Skype   Вверх
alligator
Дата 1.9.2014, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Цитата(Aliance @  1.9.2014,  09:49 Найти цитируемый пост)
Лучше бы более-менее полностью задачу описать. Что парсится, как используется потом, etc... 


Есть множество файлов вида :
Код

<?xml version="1.0" encoding="WINDOWS-1251"?>
<CredOrgDepRate Title="Информация  о  процентных  ставках по договорам банковского  вклада с физическими лицами" DocDate="07.2014" ver="1.0">
<Org RegNum="3286" Name="ООО &quot;Дагэнергобанк&quot;">
<DepositsRub Title="По срокам согласно заключенным договорам банковского вклада с физическими лицами в российских рублях (в процентах годовых)">
<CallDep Title="До востребования">1,450</CallDep>
<Dep90 Title="На срок до 90 дней">5,671</Dep90>
<Dep91-180 Title="На срок от 91 до 180 дней">7,340</Dep91-180>
<Dep181-1 Title="На срок от 181 до 1 года">11,500</Dep181-1>
<Dep1-3 Title="На срок от 1 года до 3 лет">12,212</Dep1-3>
<Dep3up Title="На срок свыше 3 лет">13,601</Dep3up>
</DepositsRub>
<DepositsUSD Title="По срокам согласно заключенным договорам банковского вклада с физическими лицами в долларах США (в процентах годовых)">
<CallDep Title="До востребования">-</CallDep>
<Dep90 Title="На срок до 90 дней">-</Dep90>
<Dep91-180 Title="На срок от 91 до 180 дней">3,531</Dep91-180>
<Dep181-1 Title="На срок от 181 до 1 года">-</Dep181-1>
<Dep1-3 Title="На срок от 1 года до 3 лет">5,182</Dep1-3>
<Dep3up Title="На срок свыше 3 лет">-</Dep3up>
</DepositsUSD>
<DepositsEur Title="По срокам согласно заключенным договорам банковского вклада с физическими лицами в евро (в процентах годовых)">
<CallDep Title="До востребования">-</CallDep>
<Dep90 Title="На срок до 90 дней">-</Dep90>
<Dep91-180 Title="На срок от 91 до 180 дней">-</Dep91-180>
<Dep181-1 Title="На срок от 181 до 1 года">-</Dep181-1>
<Dep1-3 Title="На срок от 1 года до 3 лет">-</Dep1-3>
<Dep3up Title="На срок свыше 3 лет">-</Dep3up>
</DepositsEur>
</Org>
</CredOrgDepRate>


В будущем планируется делать выборку информации по разным банкам, сортировка по типу вклада и др. сортировки.


Предварительно вижу структуру базы такую:

Таблица Банков: uid \ regnum \ name \ docdate
3 таблицы валют:
rur bankuid \ calldep \ up90 \ 91-180 \ 181-1 \ 1-3 \ 3 \ docdate
usd bankuid \ calldep \ up90 \ 91-180 \ 181-1 \ 1-3 \ 3 \ docdate
eur bankuid \ calldep \ up90 \ 91-180 \ 181-1 \ 1-3 \ 3 \ docdate


Это сообщение отредактировал(а) alligator - 1.9.2014, 09:01
PM MAIL   Вверх
ksnk
Дата 1.9.2014, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



alligator, Срочные вклады на несколько месяцев не рассматриваются? На сроки не в 3, а в 5 лет тоже?
Все xml от всех банков унифицированны по тегам xml?

Нужно бы формировать более гибкую схему хранения данных.
Ну или постоянно дорабатывать структуру


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
alligator
Дата 1.9.2014, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Цитата(ksnk @  1.9.2014,  11:15 Найти цитируемый пост)
Все xml от всех банков унифицированны по тегам xml?

Xml - везде одинаковый
Цитата(ksnk @  1.9.2014,  11:15 Найти цитируемый пост)
 На сроки не в 3, а в 5 лет тоже?

3 и более - согласно данным из xml

Добавлено через 1 минуту и 30 секунд
Цитата(ksnk @  1.9.2014,  11:15 Найти цитируемый пост)
Срочные вклады на несколько месяцев не рассматриваются?

согласно данным из xml  - только вклады до 90 дней
PM MAIL   Вверх
ТоляМБА
Дата 1.9.2014, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 10
Всего: 252



Цитата(alligator @  1.9.2014,  11:00 Найти цитируемый пост)
3 таблицы валют:
rur bankuid \ calldep \ up90 \ 91-180 \ 181-1 \ 1-3 \ 3 \ docdate
usd bankuid \ calldep \ up90 \ 91-180 \ 181-1 \ 1-3 \ 3 \ docdate
eur bankuid \ calldep \ up90 \ 91-180 \ 181-1 \ 1-3 \ 3 \ docdate

первая таблица Valute
id nValute
1  rur
2  usd
3  eur
вторая таблица calldep
id  nCalldep
1   До востребования
Третья таблица bank
id  nBank
1   Дагэнергобанк
Четвертая таблица RegNum
id  nRegNum
1  3286
Пятая таблица srok (тут придется повозиться с унификацией периодов, но если для всех банков одинаковые периоды тогда так:)
id nSrok
1  up90
2  91-180
3  181-1
4  1-3
5  3
Шестая таблица All
id  bankId  regnumId  calldepId valuteId srokId Value docdate
где value - соответствующее значение ставки.

На предоставленных тобой данных мое видение такое.
PM   Вверх
alligator
Дата 1.9.2014, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Тогда получается что-то типа того:

1. Банк                                -> uid \ name
2. Регистрационный номер   -> bankuid \ regnum
3. валюта                             -> uid \ currency_type
 Значения:
rur
usd
eur

4. тип вклада                       -> currency_uid \ type
 Значения:
up90
91-180
81-1
1-3
3

5. дата                                -> uid \ currency_uid \ type_uid \ bank_uid

6. Данные по ставкам                           -> uid \ currency_uid \ type_uid \ date_uid \rate

ставка 1 \валюта 1 \ дата \10%
ставка 2 \валюта 2 \ дата \1%
ставка 3 \валюта 2 \ дата \7%
PM MAIL   Вверх
Aliance
Дата 1.9.2014, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Эм, а данные, которые парсятся в XML - разве неизменные/редко изменяемые? Если да - то зачем нужен XML, конечно нужно хранить в удобном вам виде у себя в БД. Но мне что-то подсказывает, что данные динамически, в таком случае либо парсить при каждом обращении к скрипту (плоховато) / кешировать у себя локально и обновлять, скажем, кроном раз в несколько минут/часов/дней.

Думаю все же тему перенести в раздел по MySQL...
PM MAIL WWW ICQ Skype   Вверх
alligator
Дата 1.9.2014, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Цитата(Aliance @  1.9.2014,  15:12 Найти цитируемый пост)
Думаю все же тему перенести в раздел по MySQL... 

согласен


Цитата(Aliance @  1.9.2014,  15:12 Найти цитируемый пост)
Эм, а данные, которые парсятся в XML - разве неизменные/редко изменяемые? Если да - то зачем нужен XML, конечно нужно хранить в удобном вам виде у себя в БД. Но мне что-то подсказывает, что данные динамически, в таком случае либо парсить при каждом обращении к скрипту (плоховато) / кешировать у себя локально и обновлять, скажем, кроном раз в несколько минут/часов/дней.

Данные будут обновлятся примерно раз в месяц или вручную
Просто нужна оптимальная структура БД

Это сообщение отредактировал(а) alligator - 1.9.2014, 19:08
PM MAIL   Вверх
Aliance
Дата 2.9.2014, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: нет
Всего: 137



Раз в месяц это редко. Тогда незачем хранить XML. Ведь обращаться к данным скрипт будет явно чаще раза в месяц, а значит уйдут лишние операции по парсингу XML, плюс доступна будет сортировка с поиском.
PM MAIL WWW ICQ Skype   Вверх
frops
  Дата 19.9.2014, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Music / Web / Design



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 28.5.2009

Репутация: нет
Всего: нет



А можно еще формировать csv и его по крону запихивать в БД. Думаю, что вы знаете как )
PM MAIL WWW ICQ   Вверх
tzirechnoy
Дата 20.9.2014, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 3
Всего: 16



700 файлов? Я бы, для начала, просто свалил их в одну папку, и ковырял по мере необходимости чем-то вроде xsl. Вместе с make. А когда типичные операцыи станут привычными, а торможэние -- неприятным -- тогда и подумал бы об оптимизацыи опреацый вроде засовывания всего или частотребуемых вещей в RDBMS.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0903 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.