微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 为什么Rails隐藏了id列的存在?

我不太明白需要隐藏Rails中id列的存在.
它既不反映在迁移文件中,也不反映在schema.rb文件中.
新手无法知道认情况下已将名为id的列创建为主键.
除非他们去检查数据库中表的实际模式(rails dbconsole).

我可以在迁移文件和schema.rb中看到认包含的时间戳宏,它包含两个字段created_at和updated_at.在这里,开发人员至少得到一个线索. Rails也可以为id列做同样的事情.但事实并非如此.

为什么id列周围的秘密?它是着名的配置约定的一部分吗?或者它是所有MVC框架的标准吗?

解决方法

数据库设计中,通常认为数字id是首选,因为

>它们更容易索引,因此在创建链接(外键)时更容易“跟随”或检查.
>编辑/更新记录时,您有一个唯一(且有效)的标识符

因此,建议始终为所有表提供唯一的数字键.

现在,这个数字键对您的应用程序没有任何意义,它是数据库层的“实现细节”.还要确保每个表都有一个id,除非你明确要求不这样做.

我认为这确实属于“约定优于配置”nomer:如果每个表都应该有一个,为什么要为每个表明确指定一个id.

时间戳是不同的:这对于某些表来说很有意思,但对于相同的表,它根本不重要.它还取决于您的应用程序.

请注意,这与MVC完全无关. MVC中的M是数据的容器,但在MVC中,如何填充模型实际上并不重要.换句话说:ORM部分不是MVC的一部分.您将看到在大多数MVC实现中没有ORM,或者肯定没有像Rails那样紧密集成.

简而言之:imho从迁移中省略’id’并不是一个秘密,它只是为了让生活更轻松,为您节省更多的打字,并确保您遵循一个良好的约定,除非您明确不愿意.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐