gpt4 book ai didi

php - 我应该对这个 xml 数据使用什么持久层(xml 或 mysql)?

转载 作者:行者123 更新时间:2023-11-29 15:04:28 25 4
gpt4 key购买 nike

我想知道如何在持久层中存储 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 获取信息(xpath/xquery/simplexml)的速度更差还是更快?

优点和缺点是什么?我还有其他选择吗?是否将信息存储在 xml 文件中,适合大量用户同时访问?

如果有反馈就太好了!!谢谢!

编辑:现在我注意到我可以使用名为 xml 数据库的东西来存储 xml 数据。有人可以阐明这个问题吗?因为显然它不仅仅是将数据存储在 xml 文件中那么简单?

最佳答案

entityentity 具有 0..1 关系,entitiesentity< 具有 0..* 关系.

这不是确切的 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)
)

关于php - 我应该对这个 xml 数据使用什么持久层(xml 或 mysql)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2474378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com