【发布时间】:2014-03-24 21:38:31
【问题描述】:
继续阅读之前
我主要寻求关于数据建模策略而不是实施的建议(尽管我在最后谈到了一点)——我主要知道如何做我正在做的事情描述,但我不相信某些方法不是傻瓜的差事。
问题
总的来说,我有一个模型(称为Game,因为我的实际上下文非常深奥)主要具有已知结构和大小的属性(title、player_id 等)。除了一个属性 game_template 保证模型本身是一个分层模型——我使用的是 JSON,但它可以是 XML,无论如何。重要的是,我确实不需要查询game_template;它总是需要全部或全部,它确实是Game 模型的属性,除非在Game 的父实例的上下文中进行操作。
我真的需要两个模型吗?
尽管每个游戏-游戏模板关系总是一对一的,但所有模板都应该共享一些方法并且具有共同的必填字段(即 params 属性,其中可能有 0-n 个参数,每个都有 0-n 个不同类型的字段)
我不确定如何在 Cake 中有效地将这些链接在一起。
我正在考虑的两种解决方案(尽管我对任何一种都持开放态度)
1) 使用从一个模型对象中“提取”的数据来创建另一个模型对象
将 JSON 作为文本包含在数据库中的一列中,即。 games.game_template。当控制器实例化Game 记录时,它是否还通过解析原始文本(即json_decode('game_template', true))来实例化Game Template 模型并将结果作为array datasource 传递以对其建模?
2) 将数据保存在单独的文件中并使用模型关联
将 .JSON 文件保存在本地某处(比如lib/game_templates/<id>.json),然后将此 id 与父模型 vis-a-vis cakephp 约定相关联(即game 的game_template_id 字段?直觉上我可以想到去的理由但是,如果这个是合适的解决方案,我不知道 CakePHP 是否可以处理完全不同的数据源之间的关联,或者是否有任何超出我所描述的我需要做。
【问题讨论】:
标签: cakephp database-design model data-modeling