CakePHP模型的数据库结构

时间:2010-03-19 23:05:31

标签: database-design orm cakephp

我们正在使用CakePHP构建数据跟踪Web应用程序,并且我在解决数据库结构问题时遇到了一些问题。我们有拥有多个网站的公司。网站有很多数据样本。标签hasAndBelongToMany网站。

这一切都很好。问题是在标签内“排名”网站。我们需要将其作为存档存储在数据库中。我创建了一个如下设置的Rank模型:

rank (
    id (int),
    sample_id (int),
    tag_id (int),
    site_id (int),
    rank (int),
    total_rows)
)

所以,问题是,如何创建标记,网站和样本的关联排名?我最初将它们设置为hasMany。但是返回的结构并没有让我成为我想去的地方。

看起来像:

[Site] => Array (
    [Sample] = Array(),
    [Tag] = Array()
)

当我真的在寻找:

[Site] => Array (
[Tag] = Array (
    [Sample] => Array (
        [Rank] => Array (
            ...data...
        )
    )
)
)

我认为我可能没有正确构建数据库;所以,如果我需要更新,请告诉我。否则,我如何编写一个查找查询,让我到达我需要的位置?谢谢!

思考?需要更多细节?请问!

2 个答案:

答案 0 :(得分:1)

要获得该格式......

标记hasOne示例 示例hasOne或hasMany Rank

另一种选择是“模拟黑客”,就像我所说的那样,它基本上是使用模型类创建自定义方法,执行自定义查询并根据需要格式化结果。

答案 1 :(得分:1)

根据您想要的数据格式,我建议您更改网站有多个样本到标签有多个样本。并确保您有表格,这是

samples_tags (
id (int),
sample_id (int),
tag_id (int)
)

并检查您是否正确定义了模型的关联。更多详情请参阅HABTM in cookbook