2010-03-19 85 views
1

我们正在构建一个使用CakePHP的数据跟踪Web应用程序,并且我遇到了一些问题,使数据库结构正确。我们有公司拥有多个网站。网站有许多数据示例。标签haveAndBelongToMany站点。CakePHP模型的数据库结构

这一切都设置好了。问题在于“排名”标签内的网站。我们需要将它作为存档存储在数据库中。我创建了一个序列模型是建立这样的:

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

那么,是,我怎么创建标签,现场和样本的关联问题进行排名?我最初将它们设置为haveMany。但是,返回的结构并没有让我想去哪里。

它看起来像:

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

当我真正需要的:

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

我认为我可能无法正确构建数据库;所以如果我需要更新,请让我知道。否则,我该如何编写一个查询查询,让我可以在需要的地方访问?谢谢!

想法?需要更多细节?请问!

+0

标签是否适用于样本或网站? – 2010-03-19 23:40:09

回答

1

根据你想要的数据格式,我建议你改变网站haveMany样品标签的hasMany samples.And确保你已经储存卡是

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

而且还要检查你所定义的模型的表关联正确。更多详情请参阅HABTM in cookbook

1

要获得该格式...

标签hasOne样品 样品hasOne或排名的hasMany

另一种方法是“模式破解”我叫它,它基本上创建与模型的定制方法类,该exec自定义查询和格式化结果如何你的愿望。