Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > Философия построения сайта на XML


Автор: Gold Dragon 26.7.2005, 07:47
У меня вот такой вопрос. Желаю построить сайт, но вместо MySQL использовать в качестве хранения данных XML и с ними работать.

Почему XML? У меня очень много вложенных и повторяющихся данных число которых всегда разное. Если строить в БД, то получается очень много таблиц, да и работать .... много приходиться запросов писать. Оправдано ли это будет? Или всё же придётся использовать БД совместно с XML? Или я вообще не так использую эту технологию.

Данные: это описание торгующего заведение, т.е. начиная с названия, адреса, телефона и заканчивая количеством комнат, ассортиментом, обслуживанием... в общем что-то типа спецификации

Ваши советы и мысли..

Автор: batigoal 26.7.2005, 10:19
Можно найти промежуточный вариант. У нас, например, такая ситуация: есть некая сложная структура, которую неудобно хранить в базе напрямую. Пихаем ее в XML-документ, и сохраняем в базе как BLOB. В базе также остаются сведения о дате, сроках действия, авторе и т.д.

Автор: Gold Dragon 26.7.2005, 11:09
Lamer George
Слушай я это наверное и есть выход...(!) Т.е. можно делать и резервные копии.. Но у меня ещё есть некоторая информация, которую не выгодно хранить в XML и привязка у меня идёт по id, который в XML.

Вот короткий пример структуры
Код

    <kabak id='0'>
        <name>Название кафе</name>
        <adress>
            <sity>Город</sity>
            <area>Район в городе</area>
            <travel>Улица, дом</travel>
            <ps>Уточнение местонахождения</ps>
        </adress>
        <tel>(8312)123-456</tel>
        <site>www.adres.ru</site>
        <email>mail@mail.ru</email>
        ......
    </kabak>

Весь документ и будет состоять их этих блоков. Может тогда сделать базу со следующей структурой
Цитата
id (INT)- номер заведения (<kabak id='0'>)
desc (TEXT) - именно описание заведения, структура данных в XML
....

Можно смело доставать данные и работать уже с XML, да и собрать всё во едино очень легко

Автор: batigoal 26.7.2005, 12:09
Именно так у нас и делается. Если на твоем примере, то ситуация у нас такая: у кабака может быть несколько телефонов, их количество заранее неизвестно (и подобных параметров множество). Чем плодить кучу записей в БД, проще записать это все в документ, а в таблицу вынести ID, сервисную информацию, и еще несколько существенных параметров (например, для удобства группировки).

Автор: Gold Dragon 26.7.2005, 12:33
Ну в принципе можно вынести название, район, улицу. Этого точно много быть не может, но поиск можно будет упростить.


Ещё у кого есть мнения по этому поводу?

Автор: Bikutoru 26.7.2005, 19:08
Цитата
да и работать .... много приходиться запросов писать

Если все данные будут в XML-файлах и их объём будет приличный, то и XPath-запросов тоже будет немало и, думается, они тоже не мгновенно выполняться будут.

Цитата
Данные: это описание торгующего заведение, т.е. начиная с названия, адреса, телефона и заканчивая количеством комнат, ассортиментом, обслуживанием... в общем что-то типа спецификации

Т.е. данные будут вводиться пользователем через админ-интерфейс? Или будут статичны в течении продолжительного периода времени?

Цитата
у кабака может быть несколько телефонов, их количество заранее неизвестно (и подобных параметров множество)

В таком случае XML удобнее будет.

А вот если будут какие-то прайсы, то их удобнее (читай "привычнее") в базе держать.
Хотя распостраняют-то их часто как XML-файлы

Автор: Gold Dragon 27.7.2005, 08:28
Цитата(Bikutoru @ 26.7.2005, 19:08)
Т.е. данные будут вводиться пользователем через админ-интерфейс? Или будут статичны в течении продолжительного периода времени?
Вводиться будут пользователем и публиковаться после проверки. А насчёт статичности, ну так название и адрес кабаки не так часто меняют, а вот обстановка, меню, отзывы будут меняться чаще.

Прайсов не будет. Будет например,
- первые блюда
разнообразие - 5 баллов
ценавая политика - 4 балла

Автор: Bikutoru 27.7.2005, 09:31
Ну под прайсами я имел в виду меню. Его, наверное, лучше хранить в базе. Но если будет публиковаться состав блюда, то XML будет предпочтительнее.

А вот отзывы я бы только в базе хранил...

Автор: Gold Dragon 27.7.2005, 09:54
в общем получается следующее:
будет две таблицы
первая
- id
- название кабака
- адрес
- поле TEXT в котором хранятся данные о кабаке в структуре XML
- ещё что-то

вторая
- id
- id кабака
- отзыв

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

Интересное получается совмещение технологий

Автор: Bikutoru 27.7.2005, 19:53
Цитата

- id
- название кабака
- адрес
- поле TEXT в котором хранятся данные о кабаке в структуре XML
- ещё что-то


А бывает что один кабак имеет несколько адресов? Ну то есть, кабаков несколько, но все они входят в какую-то сеть и имеют одно название...

Автор: Gold Dragon 28.7.2005, 07:46
Само сабой, но смысл заключается в характеристики именно одного кабака. Например, есть несколько заведений с одним названием, но у одного есть стоянка, у другого три зала, у третьего живая музыка. Так что пусть будет несколько кабаков с одним названием

Автор: Bikutoru 28.7.2005, 09:19
Цитата
Само сабой, но смысл заключается в характеристики именно одного кабака. Например, есть несколько заведений с одним названием, но у одного есть стоянка, у другого три зала, у третьего живая музыка. Так что пусть будет несколько кабаков с одним названием

Тогда у меня никаких вопросов/предложений нет...

Автор: Andrey1 12.8.2005, 17:42
Есть специализированные XML базы данных: http://modis.ispras.ru/download_sedna_dbms.htm, http://exist.sourceforge.net, http://www.dbxml.com/product.html "заточенные" под поисковые запросы на и хранение XML данных.

Есть также реализации языка XQuery: http://www.gnu.org/software/qexo/, ...


XML и XQuery дают много широких возможностей. Вопрос, как правильно ими воспользоваться...



Андрей

Автор: Gold Dragon 13.8.2005, 11:59
Andrey1
Для меня это поко очень сложно smile да и не так это всё распространено в сети...

а так я уже почти всё уже сдалал, т.е. всё отлично сохраняется и ищется.. если кому нужно, могу рассказать как это всё работает..

Автор: Render 13.8.2005, 12:23
Red Dragon, если не трудно!

Автор: 3,14 15.8.2005, 13:11
Red Dragon, а что используешь для работы с XML файлами? Единственный вариант что мне понравился это Oracle-овая поддержка XML.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)