Ne sebat katman (xml veya mysql) ben bu xml veri için kullanmak gerekir?

1 Cevap php

i bir sebat katmanda bir xml yapısını saklamak nasıl merak ediyorum.

neden ilişkisel veri gibi görünüyor:

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

Gördüğünüz gibi, hiçbir statik yapı ama dinamik bir birine sahiptir. iphone 1 var ise mac 2 soyundan seviyeleri var ve ipad 0 aldım.

i bu veri iyi şekilde saklamak nasıl acaba? seçeneklerim nelerdir. nedeniyle bu dinamik yapısı bir mysql veritabanında saklamak imkansız gibi görünüyor neden olur.

sonra bir xml dosyası olarak saklamak için tek yoldur? kötü ya da mysql daha büyük bir xml dosyadan bilgi (xpath / xquery / SimpleXML) alma hızı nedir?

artıları ve eksileri nelerdir? i diğer seçenekleri var mı? aynı anda erişen kullanıcıların bir sürü için uygun xml dosyaların bilgi, depolamak?

yorumlarından ile harika olurdu! teşekkürler!

EDIT: Şimdi i xml verilerini depolamak için xml veritabanı denilen bir şey kullanmak fark ettim. Birisi bu konuda bir ışık tutabilir? bir xml dosyası sadece veri depolamak gibi görünüşte onun kadar basit değil neden?

1 Cevap

entity entities için bir 0 .. 1 ilişki vardır, ve entities entity bir 0 .. * ilişkisi vardır.

Bu kesin SQL değil, ve büyük olasılıkla geçerli hiçbir DBMS, ancak başlamanıza yardımcı olmalıdır:

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