簡體   English   中英

我應該為該xml數據使用哪個持久層(xml或mysql)?

[英]what persistence layer (xml or mysql) should i use for this xml data?

我不知道如何將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文件的唯一方法嗎? 從xml文件中獲取信息(xpath / xquery / simplexml)的速度是比mysql差還是更大?

優缺點都有什么? 我還有其他選擇嗎? 將信息存儲在xml文件中,適合許多同時訪問它的用戶嗎?

反饋會很棒!! 謝謝!

編輯:現在我注意到我可以使用一種稱為xml數據庫的東西來存儲xml數據。 有人可以闡明這個問題嗎? 原因顯然不像將數據存儲在xml文件中那樣簡單嗎?

entity有0..1關系到entitiesentities擁有0 .. *關系entity

這不是確切的SQL,很可能在任何DBMS中都無效,但是應該可以幫助您入門:

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)
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM