Какой постоянный слой (XML или MySQL) я должен использовать для этих данных XML? - PullRequest
0 голосов
/ 19 марта 2010

Интересно, как я могу сохранить структуру XML в слое постоянства.

потому что реляционные данные выглядят так:

<entity id="1000070">
    <name>apple</name>
    <entities>
        <entity id="7002870">
            <name>mac</name>
            <entities>
                <entity id="7002907">
                    <name>leopard</name>
                    <entities>
                        <entity id="7024080">
                            <name>safari</name>
                        </entity>
                        <entity id="7024701">
                            <name>finder</name>
                        </entity>
                    </entities>
                </entity>
            </entities>
        </entity>
        <entity id="7024080">
            <name>iphone</name>
            <entities>
                <entity id="7024080">
                    <name>3g</name>
                </entity>
                <entity id="7024701">
                    <name>3gs</name>
                </entity>
            </entities>
        </entity>
        <entity id="7024080">
            <name>ipad</name>
        </entity>
    </entities>
</entity>

Как видите, у него нет статической структуры, но динамическая. Mac получил 2 уровня потомков, в то время как iphone получил 1, а ipad получил 0.

Интересно, как мне лучше хранить эти данные? какие у меня варианты потому что кажется невозможным сохранить его в базе данных mysql из-за этой динамической структуры.

это единственный способ сохранить его как XML-файл? скорость получения информации (xpath / xquery / simplexml) из файла xml хуже или больше, чем из mysql?

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

было бы здорово с отзывами !! спасибо!

РЕДАКТИРОВАТЬ: теперь я заметил, что я могу использовать что-то под названием базы данных XML для хранения данных XML. может кто-то пролить свет на этот вопрос? причина, по-видимому, не так просто, как просто хранить данные в XML-файле?

1 Ответ

1 голос
/ 19 марта 2010

entity имеет отношение 0..1 к entities, а entities имеет отношение 0 .. * к entity.

Это не точный SQL, и, скорее всего, он недопустим в любой СУБД, но должен помочь вам начать:

CREATE TABLE entity (
  id int(10) AUTOINCREMENT NOT NULL,
  xid int(10) NOT NULL,
  name char(30) NOT NULL,
  entities_id int(10) REFERENCES entities.id NULL,
  PRIMARY KEY(id)
)

CREATE TABLE entities (
  id int(10) AUTOINCREMENT NOT NULL,
  entityref_id int(10) REFERENCES entityref.id NOT NULL,
  PRIMARY KEY(id)
)

CREATE TABLE entityref (
  id int(10) NOT NULL,
  entity_id int(10) REFERENCES entity.id NOT NULL,
  PRIMARY KEY(id,entity_id)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...