我目前正在开发一个应用程序后端(业务目录)。主要的“参与者”是一个“条目”,它将包括:
- main category
- subcategory
- tags (instead of unlimited sub-levels of division)我对OOP很陌生,但我还是想在这里使用它。数据库是MySql,我将使用PDO。
为了找出我应该使用什么数据库表结构来支持上面的条目分类,我正在考虑Wordpress使用的解决方案--通过几个表(术语、分类法、关系)在条目和cat/子猫/标记之间建立关系。目前阻止我解决这个问题的原因是,任何类型的关系都由relationship表中的一行表示。如果我有50,000个条目,附加在一个特定的条目上:主猫、子猫和多达15个标签可能会减慢应用程序的速度(或者我错了)?
然后,我学到了一些关于的知识,这似乎是一个很好的解决方案,因为我喜欢每个类拥有一个表的想法,但后来我读到,几乎没有办法成功地克服OOP和关系映射之间的浮躁失调。
有没有其他你认为适合这种情况的方法?我想我会去:
结构。关系将基于父in,但我想知道这足够了吗?我是否可以在这里使用外键和级联删除选项(这是我不太熟悉的东西,在我看来,这是一种更直观的方法,可以在表中的元素之间建立关系)?
发布于 2014-06-13 14:51:44
在表中存储表之间的关系是个好主意,通过索引和仔细思考,您可以获得非常快的结果。
由于每个条目必须表示两个实体之间的不同类型的链接(子类别到主条目,标记到子类别),所以您至少需要(最多是)三个字段:
这三个字段可以而且应该被索引。
现在,第四个表实现了这种多对多的关系,将描述这种联系的性质。由于表中将存在许多不同类型的关系,所以不能将该类型保留在同一个表中(子表、标记表、父表)。
第四个表(参考)可以如下所示:
id nature table1 table2
1 parent of entry tags
2 tag of tags entry表1字段告诉您第一个id引用的是哪个表,与table2类似
id是关系表中两个字段之间的数字。只应对id字段进行索引。自然字段更适合于人类读者,而不是用于连接表或组织数据。
https://stackoverflow.com/questions/21958204
复制相似问题