我正在yii中构建一个应用程序。我有AR和DAO的经验,但由于我的应用程序数据量很大,我将只使用DAO来完成所有CRUD任务。
但是我仍然坚持使用什么样的数据库模式,我对RDBMS非常熟悉,但考虑到数据验证/在视图中显示数据,我必须创建各自模型的对象。我的应用程序中的用户可以选择填充/不填写的各种字段。字段如下:
1)地址相关字段(分解为单独的实体)
2)电话号码(多种类型)
3)认证(字符串数据)
4)Niche Specialiation(字符串数据)
5)计时(从下拉中选择)
6)设施(字符串数据)
依此类推,请注意这些只占所有领域的30%左右。
在设计RDBMS时,我自然会将我的电话号码放在一个表中,在另一个表中写入,依此类推。为了显示单个视图,我正在寻找创建大约10-20个模型对象。但是,我所说的这个单一视图页面是应用程序的核心,功能在这里不能妥协。
考虑到所有这些因素,如果我将来必须考虑可扩展性和性能,那么RDBMS真的是可行的方法。
我应该选择哪些其他数据库选项?
答案 0 :(得分:0)
在Yii中使用AR的真正优势在于您利用模型“关系”(包括原始1.1版本之后添加的众多功能)。定义“范围”也非常有用,就像使用'with'一样。所有这些功能允许您编写一次关系定义。这可能需要一点时间,但是你知道每次使用它都是正确的,它们可以组合在一起,这是AR闪耀的时候。
创建模型对象有一些开销。使用Yii广泛的缓存功能,您仍然可以获得更高的性能。我没有测量,但我可以很容易地相信带缓存的AR在没有它的情况下可以大大超过DAO。