我正在定义一个全新的数据库。我现在遇到了一个问题 我会形容为“平常”但仍然找不到好的 来自网络的信息。那么问题来了:
我的数据库中有很多表(我将其描述为指南),例如:
- 技能
- 地点
- 事件
- 等等...
现在,对于所有这些指南类型,我想添加一个评论功能,并且 其他类似功能,如附加图像和视频。我有很多指南类型,所以我放弃了为每一种指南提供单独的评论图像和视频表的想法。我需要为他们每个人准备一张 table 。
问题是,实现这一目标的最佳方法是什么?我听说过和阅读过 3 种解决方案,但我对它们都不熟悉。
我读过有关使用 UUID 可以解决此问题的信息,但我不太熟悉它们的工作原理。如果这是正确的方法,有人可以详细说明吗? Something about UUIDs I read but not quite understood it .
我读到的另一件事是创建一个包含关联链接的分层模型“树表”。更多信息,请访问 Managing Hierarchical Data in MySQL .
我还阅读了有关在 MySQL 中以类似分层模型的方式创建对象表和使用对象继承等程序的内容。
UUID 听起来很简单,所以我很感激能提供帮助。
我对如何使用它们一无所知。但这就是我认为它的工作原理 - 至少你会明白我在这里试图实现的目标以及我对它们的误解/误解:
- 我会创建一个新表:Guides,它可以有 UUID 字段。
- 然后将所有这些指南类型(技能等)链接到指南表(指南作为 parent ,另一个作为 child )
- Parent 和 Child 都有 UUID 字段,在创建指南时,Parent 和 Child 获得相同的 UUID,因此可以链接它们。 Child 也有自己的 Id 字段。
- 然后使用指向 Guide 的 UUID 字段加上单独的评论 id int 字段将评论链接到 Guides。
请告诉我这是正确的方法还是完全是垃圾,如果是这样,我应该怎么做?
最佳答案
您是否考虑过使用普通的 hasMany
关系和条件? Read about it here .
class Skill extends AppModel {
var $hasMany = array(
'Comment' => array(
'className' => 'Comment',
'conditions' => array('Comment.type' => 1), // 1 for skills, 2 for places etc. or something like that.
)
);
}
关于mysql - 如何在 CakePHP 中创建具有多个 hasMany 关联的 mysql 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4729075/