我有一个我希望非常大的度量表.它具有多态关联,因此它可以属于想要记录某些度量的其他模型.我通常索引像这样的关联列来加速关联加载. 我听说有人谈论联合索引这种关联.这看起来像:
add_index :comments, [:commentable_type, :commentable_id]
但我也听到了反对创建低基数指数的建议,因为索引的收益并没有抵消维持它的开销.由于我的多态关联的_type一半可能在数百万行中只有4-5个值,所以我倾向于只对多态关联的_id部分进行索引.我可能会使用_id列和一些其他未提及的整数和日期时间列创建一些额外的联合索引,但我也不会在这些索引中包含_type.
这是你会做什么/推荐?
migration indexing activerecord ruby-on-rails polymorphic-associations
以前,我在ActiveRecord中询问了关于多态外键的复合索引的问题.我的问题的基础是我的理解,索引应该基于列的基数,并且在Rails的STI类型和多态_type列上通常具有相当低的基数.
接受我的问题的答案是正确的 - 将高基数_id列和低基数_type列索引是有价值的,因为它们一起具有高基数 - 我的下一个问题是:你应该如何订购你的化合物索引?
[owner_id,owner_type]的索引首先放置具有较高基数的字段,而[owner_type,owner_id]将具有较高基数的字段放置在第二位.使用前一个键的查询是否比使用后一个键的查询更高效,或者它们是否同样高效?
我问,因为这对我如何为服务STI模型的表订购复合键有特别的影响.STI Rails查找器几乎总是查询类型列 - 这也是一个通常低基数的列.因此,比其他索引更频繁地查询类型列.如果更经常地查询类型列,那么使用类型前导索引可能是有意义的,因为较少特定的查询可以利用索引的第一部分来产生性能提升.但是,对于高度特定的查询而言,我不会因为性能不利而受到影响.利用索引的高基数部分.
Web框架很棒.我认为滚动你自己而不考虑流行的开源库是一种设计气味.因此,如果有人打算开始一个Web项目而不使用流行的服务器端Web框架(如Rails)和流行的客户端框架(如jQuery),我认为他们要么疯狂,要么无知,要么非常小众.
也就是说,Web框架不会为您做很多事情.像Rails和jQuery这样的恕我直销框架已经取得了成功,因为他们试图将80%带到那里,接下来的20%让你去做.80%的比例使它们足够灵活,可以被广泛使用而不会变得过于紧缩或笨拙.所以问题就变成了,你如何处理剩下的20%,特别是当你的应用程序变大时?
过去1.5年,我们开发并维护了一个Rails/jQuery-UI应用程序.如上所述,这些框架的无限制功能证明了我们能够快速提高速度,保持生产力和加强优秀设计.然而,在过去的几个月里,我开始认为我们应该能够更快地开发和部署新功能,并且我开始觉得我们没有在Rails和jQuery给出的基础上建立足够的基础我们.新功能似乎必须从每次80%的点开发,而不是优选的90-95%.
为什么您的战略超越了Web框架?您曾经使用过哪些技术或技术将80%的起点移近90-95%?您遇到或克服了构建自己的应用程序框架或工具包的哪些具体障碍?在vanilla Rails和jQuery上开发的难点是什么促使您寻求更紧密的应用程序集成?
Vue 实例可以允许您创建嵌套视图模型。例如,考虑以下情况
new Vue({
el: '#app',
data: {
form: {
firstName: "Joe",
lastName: "Bloggs"
}
},
computed: {
name: function () {
return this.form.firstName + ' ' + this.form.lastName;
}
}
});
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,有一个嵌套的表单数据对象:form.firstName 和form.lastName。我可以使用以下命令将此视图模型绑定到 HTML:
<div id="app">
<form>
<label>
First:
<input type="text" v-model="form.firstName">
</label>
<label>
Last:
<input type="text" v-model="form.lastName">
</label>
</form>
<div>
You are: {{name}}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是:是否有一种简单的方法(例如指令)来创建嵌套绑定范围,使我可以在没有前面的“表单”的情况下寻址firstName和lastName?
Knockout.js 具有with 绑定,允许您显式指定与视图模型相关的绑定范围。这是一个 JS Fiddle,显示 Knockout.js 使用 with 绑定
Vue 中是否有一个类似于 Knockout 的简单绑定绑定 …
activerecord ×2
indexing ×2
architecture ×1
jquery ×1
migration ×1
mysql ×1
sti ×1
vue.js ×1
vuejs2 ×1
vuejs3 ×1