首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库中的数据库?

数据库中的数据库?
EN

Stack Overflow用户
提问于 2011-08-09 21:28:31
回答 2查看 95关注 0票数 0

我有一个LAMP应用程序,它需要接受来自我们用户的外部数据源。通常,这些只是简单的列表(例如,这样用户就可以有一个定制的下拉列表)。然而,我看到了对更复杂数据的需求。例如,两个自定义下拉列表,其中第二个下拉列表取决于第一个下拉列表中的选择。

有没有一种方法可以在我的数据库中存储外部关系数据,这样我也可以查询它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-09 21:31:59

不是在MySQL中,除非您为其定义了一个结构,否则请拆分数据并将其存储在该结构中。然而,这将是繁琐的。通过引用同一表中的父项,可以在单个表中定义分层结构。这样,您甚至可以将XML元素及其属性存储在一个数据库中,该数据库只有三个表,分别用于文档、元素和属性。查询这些表将非常困难,特别是在MySQL中。在Oracle中,CONNECT BY允许递归查询,但速度很慢。

也许你应该考虑像Mongo这样的No-SQL数据库,它更适合于这类任务。

票数 0
EN

Stack Overflow用户

发布于 2011-08-09 21:30:43

在规范化的数据库模式中,您将使用列表中的自引用对此进行建模,即

代码语言:javascript
复制
create table list (
  id int,
  parent_id int,

  primary key list_pk (id),
  foreign key list_self (parent_id) references list (id)
)

如果5号下拉选项有从属选项,您可以这样查询它们:

代码语言:javascript
复制
select * from list where parent_id = 5
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6996907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档