首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面向对象PHP的后端应用:高效构造类/表

面向对象PHP的后端应用:高效构造类/表
EN

Stack Overflow用户
提问于 2014-02-22 18:03:51
回答 1查看 154关注 0票数 3

我目前正在开发一个应用程序后端(业务目录)。主要的“参与者”是一个“条目”,它将包括:

代码语言:javascript
复制
- main category
    - subcategory
        - tags (instead of unlimited sub-levels of division)

我对OOP很陌生,但我还是想在这里使用它。数据库是MySql,我将使用PDO。

为了找出我应该使用什么数据库表结构来支持上面的条目分类,我正在考虑Wordpress使用的解决方案--通过几个表(术语、分类法、关系)在条目和cat/子猫/标记之间建立关系。目前阻止我解决这个问题的原因是,任何类型的关系都由relationship表中的一行表示。如果我有50,000个条目,附加在一个特定的条目上:主猫、子猫和多达15个标签可能会减慢应用程序的速度(或者我错了)?

然后,我学到了一些关于的知识,这似乎是一个很好的解决方案,因为我喜欢每个类拥有一个表的想法,但后来我读到,几乎没有办法成功地克服OOP和关系映射之间的浮躁失调。

有没有其他你认为适合这种情况的方法?我想我会去:

  • 斜纹
  • 塔布范畴
  • Tbl子范畴
  • tbltag

结构。关系将基于父in,但我想知道这足够了吗?我是否可以在这里使用外键和级联删除选项(这是我不太熟悉的东西,在我看来,这是一种更直观的方法,可以在表中的元素之间建立关系)?

EN

回答 1

Stack Overflow用户

发布于 2014-06-13 14:51:44

在表中存储表之间的关系是个好主意,通过索引和仔细思考,您可以获得非常快的结果。

由于每个条目必须表示两个实体之间的不同类型的链接(子类别到主条目,标记到子类别),所以您至少需要(最多是)三个字段:

  • id1 (或第一个实体的唯一id )
  • linkid (链接到描述每个链接的第四个表)
  • id2 (或第二个实体的唯一id )

这三个字段可以而且应该被索引。

现在,第四个表实现了这种多对多的关系,将描述这种联系的性质。由于表中将存在许多不同类型的关系,所以不能将该类型保留在同一个表中(子表、标记表、父表)。

第四个表(参考)可以如下所示:

代码语言:javascript
复制
id     nature     table1    table2
1      parent of  entry     tags
2      tag of     tags      entry

表1字段告诉您第一个id引用的是哪个表,与table2类似

id是关系表中两个字段之间的数字。只应对id字段进行索引。自然字段更适合于人类读者,而不是用于连接表或组织数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21958204

复制
相关文章

相似问题

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