CakePHP模型设计建议:将RDBMS模型与可扩展/分层模型(JSON / XML / Array)相关联

时间:2014-03-24 21:38:32

标签: cakephp database-design model data-modeling

继续阅读之前
我主要在数据建模策略上寻求与实现相关的建议(虽然我最后稍微谈了一下) - 我大多知道如何做我和我#39; m描述,但我并不相信某些做这件事的方法不是傻瓜。

问题

从广义上讲,我有一个模型(称之为Game,因为我的实际情境非常深奥)主要具有已知结构和属性的属性。大小(titleplayer_id等)。除了一个属性game_template,它保证模型本身,但是使用JSON的层次结构 - 但它可以是XML,无论如何。重要的是,我需要查询game_template; 总是总是需要全部或全部,它实际上是Game模型的属性,除非在它的父{/ 1}实例的上下文中被操作}}。

我真的需要两种型号吗?
虽然每个游戏 - game_template关系将永远属于并且属于一个,但所有模板应该共享一些方法并且将具有共同的必需字段(即。Game属性,其中可能有0-n params,每个都有0-n个各种类型的字段)

我不确定如何将这些内容有效地链接在Cake内。

我考虑的两种解决方案(虽然我对任何人开放)

1)使用"提取"来自一个模型对象的数据来创建另一个
将JSON作为文本包含在数据库中的列中,即。 params。当控制器实例化games.game_template记录时,让它通过解析原始文本(即Game)并将结果作为array datasource传递来实例化Game Template模型。从中建模吗?

2)将数据保存在单独的文件中并使用模型关联
将.JSON文件保存在本地某处(比如json_decode('game_template', true)),然后将此id与父模型相对于cakephp约定(即lib/game_templates/<id>.json game_template_id字段关联起来?直观地说,我可以想想要采取哪种方式的原因。但是,如果这个 是适当的解决方案,我不知道CakePHP是否可以处理完全不同的数据源之间的关联,或者是否有什么超出了我&# 39;我已经描述过我需要这样做。

2 个答案:

答案 0 :(得分:0)

您确定这是您的问题的正确论坛吗?您的问题涉及JSON,数据库列上的文本,模型的实例化,解析原始文本,传递结果,数组,存储文件的位置等。

我认为这些主题都与数据建模无关。对我来说,他们都是设计或实施相关的。

答案 1 :(得分:0)

您在此处陈述问题的方式(&#39;我应该将结构视为属性还是模型?&#39;) 似乎(对我而言)是纯数据建模问题。那么也许最好沿着这些线编辑OP,并保留标签原样?

对我来说,考虑所有与实现相关的东西被切掉的问题要容易得多。如果我不必考虑工具,编程语言,表格,列和协议,至少在开始时,我可以更好地思考关于类,属性,键和关系的问题。当然,如果您有两种模型可以准确描述客户的未来世界,那么您必须关注选择最适合您的目标实施的模型。但很难一下子想到所有事情。