2011-07-29 24 views
1

父亲应该知道孩子还是vica?父亲应该知道孩子还是vica?

也就是说,在一个情况下,我有两种对象(项目和类别),每个人都有自己的特点和领域,我们有他们之间的关系,每一个项目都有一个类别他在不在。

我想问两种方式,理论上和php + mysql中会发生什么。

这些类别应该知道其中的所有项目,还是应该知道每个项目的类别?

在php + mysql中,确切的问题是我应该为它的行中的每个项目保存它的类别的id,还是应该为这个关系创建一个特殊的表(每行包含一个类别id和一个项目id)?

回答

3

最好的做法是让孩子知道父母(例如:parent_id)。替代方案不可扩展,对您的系统非常重要。您可以轻松地运行查询来查找孩子,但 - SELECT * FROM items WHERE item_category = x。原因是当您添加或删除项目时,该类别不受影响。它不会成为一个不同的类别,因为您将项目分配给它或从中移除项目,所以它不应该在乎哪种项目分配给它。

这与标记设置不同。在一对多的类别分配方法中,项目可能属于一个“类别”,但可能有许多“功能”。标记功能是多对多的关系,需要您提到的映射表。分配父类别只需要项目表中的一个“父”字段。

相关问题