我有一个LAMP应用程序,它需要接受来自我们用户的外部数据源。通常,这些只是简单的列表(例如,这样用户就可以有一个定制的下拉列表)。然而,我看到了对更复杂数据的需求。例如,两个自定义下拉列表,其中第二个下拉列表取决于第一个下拉列表中的选择。
有没有一种方法可以在我的数据库中存储外部关系数据,这样我也可以查询它?
发布于 2011-08-09 21:31:59
不是在MySQL中,除非您为其定义了一个结构,否则请拆分数据并将其存储在该结构中。然而,这将是繁琐的。通过引用同一表中的父项,可以在单个表中定义分层结构。这样,您甚至可以将XML元素及其属性存储在一个数据库中,该数据库只有三个表,分别用于文档、元素和属性。查询这些表将非常困难,特别是在MySQL中。在Oracle中,CONNECT BY允许递归查询,但速度很慢。
也许你应该考虑像Mongo这样的No-SQL数据库,它更适合于这类任务。
发布于 2011-08-09 21:30:43
在规范化的数据库模式中,您将使用列表中的自引用对此进行建模,即
create table list (
id int,
parent_id int,
primary key list_pk (id),
foreign key list_self (parent_id) references list (id)
)如果5号下拉选项有从属选项,您可以这样查询它们:
select * from list where parent_id = 5https://stackoverflow.com/questions/6996907
复制相似问题