OO-PHP中的后端应用程序:高效构造类/表
我目前正在开发一个应用程序后端(业务目录)。主“参与者”是一个“条目”,它将具有:OO-PHP中的后端应用程序:高效构造类/表,php,oop,orm,pdo,datamapper,Php,Oop,Orm,Pdo,Datamapper,我目前正在开发一个应用程序后端(业务目录)。主“参与者”是一个“条目”,它将具有: - main category - subcategory - tags (instead of unlimited sub-levels of division) 我对OOP非常陌生,但我仍然想在这里使用它。数据库是MySql,我将使用PDO 为了弄清楚我应该使用什么样的数据库表结构来支持上述条目分类,我考虑了Wordpress使用的一个解决方案——通过几个表(术语、分类法、关系)在条
- main category
- subcategory
- tags (instead of unlimited sub-levels of division)
我对OOP非常陌生,但我仍然想在这里使用它。数据库是MySql,我将使用PDO
为了弄清楚我应该使用什么样的数据库表结构来支持上述条目分类,我考虑了Wordpress使用的一个解决方案——通过几个表(术语、分类法、关系)在条目和CAT/子类别/标记之间建立关系。目前阻止我使用此解决方案的是,任何类型的每个关系都由relationships表中的一行表示。如果我有50000个条目,附加到一个特定条目上:主cat、subcat和最多15个标签可能会减慢应用程序的速度(或者我错了)
然后我学习了一些关于表数据网关的知识,这似乎是一个很好的解决方案,因为我喜欢每个类有一个表的想法,但是后来我读到,实际上没有办法成功地解决OOP和关系映射之间的阻抗错配
有没有其他适合这种情况的方法?我想我会选择:
- t透镜
- TBL范畴
- tblsubcategory
- tbltag
结构。关系将基于父ID,但我想知道这是否足够?我可以在这里使用外键和级联删除选项吗(这是我不太熟悉的,在我看来,这是建立表中元素之间关系的一种更直观的方式)?有一个存储表之间关系的表是一个好主意,通过索引和仔细思考,您可以快速获得结果 由于每个条目必须表示两个实体之间不同类型的链接(子类别到主条目,标记到子类别),因此您至少需要(最多)三个字段:
- id1(或第一个实体的唯一id)
- linkid(链接到第四个表,其中描述了每个链接)
- id2(或第二个实体的唯一id)
id nature table1 table2
1 parent of entry tags
2 tag of tags entry
表1字段告诉您第一个id所指的表,表2也是如此
id是关系表中两个字段之间的数字。只应为id字段编制索引。自然字段更适合于人类读者,而不是用于连接表或组织数据