Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Как можно из БД сделать XML? (http://www.flasher.ru/forum/showthread.php?t=157845)

Astraport 11.06.2011 17:30

Как можно из БД сделать XML?
 
Есть простая БД: 100 полей и 100 записей, а на пересечении их некие строковые значения. Всего получается 10 тыс. значений.
Можно ли эту БД перегнать в XML, чтобы также можно было задать два параметра (номер поля и номер строки) и получить искомую запись?

Bgg 11.06.2011 17:42

Э, с помощью любого серверного языка и SQL запроса.

Astraport 11.06.2011 19:24

Я не про конвертацию. Какая должна быть структура искомого XML чтобы мне было быстро и удобно осуществлять поиск потом нужной записи по двум параметрам?

wvxvw 11.06.2011 19:56

Код:

<table><td><tr>data</td></tr></table>
не?

Crazy 11.06.2011 20:50

Цитата:

Сообщение от Astraport (Сообщение 1002991)
Я не про конвертацию. Какая должна быть структура искомого XML чтобы мне было быстро и удобно осуществлять поиск потом нужной записи по двум параметрам?

Если мы говорим про работу из AS3, то примерно так:

Код:

<data>
  ...
  <record foo="1" bar="2".../>
  ...
</data>

Т.е. по-возможности храним данные в атрибутах плоского списка.

Astraport 12.06.2011 00:16

Цитата:

Если мы говорим про работу из AS3, то примерно так:
Ну если это лучшее решение, тогда не стоит переходить на XML. Весь вопрос был в размере и скорости доступа, но если так как я и представлял, тогда игра не стоит свеч. Размер XML-файла 3-4 МБ, поиск 2-3 секунды:(

fish_r 12.06.2011 14:44

Цитата:

Сообщение от Astraport (Сообщение 1003075)
Ну если это лучшее решение, тогда не стоит переходить на XML. Весь вопрос был в размере и скорости доступа, но если так как я и представлял, тогда игра не стоит свеч. Размер XML-файла 3-4 МБ, поиск 2-3 секунды:(

Одним из ключевых достоинств использования БД всегда считалась скорость доступа. Не пытайтесь обскакать БД в этом вопросе - долгие хлопоты, лишние слезы. :)

Crazy 12.06.2011 17:06

Цитата:

Сообщение от fish_r (Сообщение 1003138)
Не пытайтесь обскакать БД в этом вопросе - долгие хлопоты, лишние слезы. :)

Если БД живет на сервере, а XML уже загружен на клиента и прошел предварительную обработку (то же индексирование), то за счет потерь на коммуникацию с сервером вариант с XML может дать существенно большую скорость.

К сожалению, а данном случае недостаточно информации, чтобы советовать что-то конкретное.

fish_r 12.06.2011 17:13

Да, конечно. Но это должен быть очень специфичный случай... Даже не могу сходу придумать такую ситуацию.

Crazy 12.06.2011 17:19

Легко. Информационный киоск.

fish_r 12.06.2011 18:13

И? OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Sav Zigzag, Microsoft SQL Server Compact, в общем локальные решения? Нет?

Crazy 12.06.2011 19:15

Цитата:

Сообщение от fish_r (Сообщение 1003182)
И? OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Sav Zigzag, Microsoft SQL Server Compact, в общем локальные решения? Нет?

Зачем?

fish_r 12.06.2011 19:20

Если данных слишком мало, то нет смысла разговаривать об "индексации" и прочем. Если их все же много то локальная база, по-любому, - лучшее решение.

Ну, может быть есть отдельные случаи когда это не так, но не сталкивался...

Crazy 12.06.2011 19:26

Цитата:

Сообщение от fish_r (Сообщение 1003193)
Если данных слишком мало, то нет смысла разговаривать об "индексации" и прочем. Если их все же много то локальная база, по-любому, - лучшее решение.

Есть достаточно широкая область пограничных объемов. К примеру, диапазон 10,00-1,000,000 записей достаточно мал, чтобы хранить данные в памяти и не усложнять систему лишними внешними зависимостями и достаточно велик, чтобы последовательный поиск был слишком долгим для практического использования.

Соответственно, если задача решается целиком средствами одного инструмента, но взамен предлагается наставить еще кучу всего, то возникает вопрос, который я озвучил выше:

Цитата:

Сообщение от Crazy
Зачем?

Если в тех условиях, когда справляется один Flash, мы добавим еще и OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Sav Zigzag, Microsoft SQL Server Compact (желающие пусть впишут свое) -- в чем будет дополнительное счастье? Помним, что все это потребует затрат на интеграцию и организацию обновления локальной базы.

fish_r 12.06.2011 19:50

эта цифра 10,00 == 1000 или ==10?

Миллион записей это, всё же, уже не мало. Совсем не мало. Конечно, организация интеграции требует от прогера телодвижений, но если действительно есть заинтересованность в оптимальном результате, то сделать их все же придется. Что касается обновлений, переноса, оптимизации, то это опять же стихия БД. Они под это заточены изначально и в этом, отчасти, их смысл и состоит. То есть это тоже одни из основных задач которые решаются средствами БД.

К примеру с локальными информационными источниками. Предположим какой то источник предоставляет ограниченный информационный объем. Но ведь где то этот объем хранится? И хранится он в более, возможно, глобальном хранилище, включающем и другие инфоданные. Та что же легче "ручками" выдирать нужные сведения или один раз составить структурированный запрос и по "жмаку" на клавише получать нужные данные в виде одного готового информационного куска?

Но, не буду спорить (хотя вроде, как уже и спорю) :)Может вы и правы, я не сталкивался с такими ситуациями.


Часовой пояс GMT +4, время: 15:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.