За последние 24 часа нас посетили 18174 программиста и 1650 роботов. Сейчас ищут 1519 программистов ...

XML-БД Кто, что думает.

Тема в разделе "Решения, алгоритмы", создана пользователем r00les, 7 фев 2010.

  1. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    Пишу ORM для работы с XML файлами на том же уровне что и ORM которые работают c SQL-БД. Как вы думаете, стоит ли включать это в состав php framework-a как альтернативу существующим БД ? скажем для небольших проектов.
     
  2. Ну, вообще-то XML может имееть нелинейную структуру, что там маппить то? Какие проблемы прослойка должна решить?
     
  3. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    флоппик

    На реальных примерах. Пишу игру. Как в любой игре есть игровая площадка, пространство который может включать в себя самые разные объекты ( галактики, планеты, астероиды ). Естественно я всё описывал в XML - файлах. Так вот, развивая игру, на стадии оптимизации кода столкнулся с тем, что мир из XML файлов собирается за 0.0008 mc ( локально ), а всё остальное пожирает работа с БД ( исключая инклуды и причём имея один только запрос небольшой ) это ~ 0.00200. И я задался вопросом - "Если программирование на PHP всё больше и больше идёт в сторону framework-ов, а работа с БД всё больше выполняется через какую либо ORM, то есть ли принципиальная разница где хранить данные, если результат и комфорт не отличаются, а все действия вуалируются ORM".

    PS: Единственное что необходимо и оно пишется, это вытаскивать нужные кусочки из дерева больших размеров.
     
  4. Ты по моему, не понимаешь, какие проблемы решает ОРМ.

    ОРМ - это прослойка решающая проблему того, что данные в таблице в бд - линейные, плоские, в то время как обьекты отображают как сами данные, так и их отношения с другими данными.

    ХМЛ - нелинейная структура, а значит этой проблемы не имеет В ПРИНЦИПЕ.

    Обьясни, в терминах, по-человечески, какую задачу решает твоя идея?
     
  5. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    флоппик

    Я знаю что такое ORM. И знаю что она решает. Я говорил о другом. Моя идея в том, что бы создать СУБД которая бы представляла не линейную структуру XML в линейную структуру на выходе ( скажем при предоставлении данных в удобном виде ). Мне кажется это куда лучше будет для сервера - работать с не линейной структурой и разбивать её на более простые составляющие. Да и обмен данными между двумя серверами можно осуществлять сразу в удобном виде XML. А не пользоваться возможностями языков программирования реализовывая каждый раз транспортные задачи по обмену данными.
     
  6. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    флоппик

    То есть решаем проблему только с отображением информации а не хранением. Это же куда лучше и быстрее, разве я не прав ?
     
  7. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    r00les
    Проблемы нет.

    объекты отлично сериализуются/десериализуются в XML. Единственным камнем будут циклические ссылки. Но они легко решаются.

    Отображать XML в линейную структуру - это нечто не понятное.
    Кто мешает взять XML и сделать сразу XSLT получив на выходе нужную страницу?
     
  8. Когда кажется - крестится надо.

    БД основанные на ХМЛ существуют уже лет 8 только на моей памяти, скорее всего - дольше.
    Удобном кому? Сервер - железка, у него нет предпочтений. А быстрее всего обмениватся структурами с указанием размера, и что?

    В общем, понятно, идей/стремлений море, матчасть хромает. Ничего, со временем это пройдет.
     
  9. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    Simpliest

    А кто мешает вообще не использовать такие средства как MySQL. Я говорил о случаях когда просто взять и сделать руками бывает затруднительно.
     
  10. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    флоппик

    - я не верующий.
    - вы обидели мою Мери (((.

    Приведите пример СУБД и драйвер для PHP который работают с XML-БД.
     
  11. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    А причем тут MySQL? А если руками сделать затруднительно - то уже ничего не поможет.

    Простейший пример объекта с xml сериализацией.
    PHP:
    1. <?php
    2. abstract class XMLSerializable {
    3.     public function __serialize()
    4.     {
    5.         $xml = '<root>';
    6.         foreach($this as $propName => $propValue) {
    7.             if($propValue instanceof XMLSerializable) {
    8.                 $xml .= '<' . $propName . '>' . serialize($propValue) . '</' . $propName . '>';
    9.             } else {
    10.                 $xml .= '<' . $propName . '>' . (string) $propValue . '</' . $propName . '>';
    11.             }
    12.         }
    13.         return $xml . '</root>';
    14.     }
    15. }
    Oracle, MSSQL работают с XML
     
  12. Oracle XML DB, Oracle Berkeley XML DB, Sedna XML DB, CouchDB - это только которые вспомнил с первого захода. Еще пара в голове вертится, названия не вспомню.

    Почти у всех есть драйвера для ПХП.
     
  13. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    Simpliest

    Хорошо, а как вы будите контролировать 10 - 20 таблиц который имеют подтаблицы и всё это ввиде XML ? на каждую свой класс будите писать ? Вы же не работаете с файлами БД напрямую, а используете такие средства как MySQL и тд.
     
  14. еще pureXML вспомнил, и собсно в MSSQL 2005 уже появилась поддержка ХМЛ БД. В общем, тысячи их, и они плохо живут в пхп, потому что XML - медленный, а скрипт - торопится.
     
  15. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    Код (Text):
    1. Oracle, MSSQL работают с XML
    На уровне управления или на уровне отобразить ?
     
  16. Ты уверен, что ты говорил правду, когда говорил об ОРМ ?
     
  17. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    флоппик

    XML медленный ? или тот кто его обрабатывает ?
     
  18. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    - нет, я критин.
     
  19. XML - представление с нефиксированной размерностью, и не имеет никакой метаинформации. Оно В ЛЮБОМ СЛУЧАЕ будет медленней представления с фиксированной размерностью.

    Думаю, свою часть в этой дискуссии я завершу, поциент невменяем и не обладает достаточными базовыми знаниями для ведения цивилизованной дискуссии, а в маты скатыватся неохото.

    Всем приятного воскресения.
     
  20. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    А в чем проблема?
    models + mappers 66 классов уже. Если порыскать по форуму (последние 2-3 недели), то даже найдется образец кодогенератора для них, который я выкладывал.

    Если у меня 30 с гаком сущностей то при всем желании у меня не будет меньше классов (в противном случае я неправильно спроектировал систему).

    Базы не занимаются отображением.
     
  21. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    Давайте без утвердительных высказываний пожалуйста и без пены у рта. Я как раз и говорю о том что бы создать такие средства, которые обрабатывали бы XML с той же скоростью. Если вам тема не интересна и вы считаете себя выше нашего общества, то зачем вы вообще обсуждаете что либо ? Письку показывают в другом месте. Простите.
     
  22. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    вечных двигателей не бывает.
     
  23. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    Simpliest

    А кто генерирует классы в зависимости от данных в XML ? Или для каждой ветки отдельно пишется ?
     
  24. r00les

    r00les Активный пользователь

    С нами с:
    4 сен 2009
    Сообщения:
    142
    Симпатии:
    0
    Simpliest

    Да вы знаете, земля то же центр вселенной.
     
  25. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    о боже, откуда вас таких столько?