| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Хранение информации |
| Автор: alligator 30.8.2014, 15:49 |
| Всем доброго времени суток. Есть куча с сайтов с xml данными, собираю файлики через cUrl, по количеству их ~700 Вопрос, как лучше хранить полученную информацию? 1. Парсить в массив и распихивать по полям\таблицам? 2. Просто хранить полученный XML? если да то в каком типе поля лучше хранить в дальнейшем потребуется обработка информации из этих файлов |
| Автор: ТоляМБА 30.8.2014, 17:12 |
| alligator, если потом будешь обрабатывать, то первый вариант. |
| Автор: Aliance 1.9.2014, 08:49 |
| Лучше бы более-менее полностью задачу описать. Что парсится, как используется потом, etc... |
| Автор: ksnk 1.9.2014, 10:15 |
| alligator, Срочные вклады на несколько месяцев не рассматриваются? На сроки не в 3, а в 5 лет тоже? Все xml от всех банков унифицированны по тегам xml? Нужно бы формировать более гибкую схему хранения данных. Ну или постоянно дорабатывать структуру |
| Автор: alligator 1.9.2014, 10:41 |
Xml - везде одинаковый 3 и более - согласно данным из xml Добавлено через 1 минуту и 30 секунд согласно данным из xml - только вклады до 90 дней |
| Автор: ТоляМБА 1.9.2014, 10:47 | ||
первая таблица 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 - соответствующее значение ставки. На предоставленных тобой данных мое видение такое. |
| Автор: alligator 1.9.2014, 11:30 |
| Тогда получается что-то типа того: 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% |
| Автор: Aliance 1.9.2014, 14:12 |
| Эм, а данные, которые парсятся в XML - разве неизменные/редко изменяемые? Если да - то зачем нужен XML, конечно нужно хранить в удобном вам виде у себя в БД. Но мне что-то подсказывает, что данные динамически, в таком случае либо парсить при каждом обращении к скрипту (плоховато) / кешировать у себя локально и обновлять, скажем, кроном раз в несколько минут/часов/дней. Думаю все же тему перенести в раздел по MySQL... |
| Автор: alligator 1.9.2014, 19:07 | ||
согласен
Данные будут обновлятся примерно раз в месяц или вручную Просто нужна оптимальная структура БД |
| Автор: Aliance 2.9.2014, 08:16 |
| Раз в месяц это редко. Тогда незачем хранить XML. Ведь обращаться к данным скрипт будет явно чаще раза в месяц, а значит уйдут лишние операции по парсингу XML, плюс доступна будет сортировка с поиском. |
| Автор: frops 19.9.2014, 11:19 |
| А можно еще формировать csv и его по крону запихивать в БД. Думаю, что вы знаете как ) |
| Автор: tzirechnoy 20.9.2014, 08:16 |
| 700 файлов? Я бы, для начала, просто свалил их в одну папку, и ковырял по мере необходимости чем-то вроде xsl. Вместе с make. А когда типичные операцыи станут привычными, а торможэние -- неприятным -- тогда и подумал бы об оптимизацыи опреацый вроде засовывания всего или частотребуемых вещей в RDBMS. |