【发布时间】:2022-01-21 04:59:49
【问题描述】:
谁能向我解释一下模型和数据库的区别?数据库已创建并表示模型。如果有人能详细说明,我将不胜感激,谢谢。
【问题讨论】:
标签: ruby-on-rails sqlite model-view-controller
谁能向我解释一下模型和数据库的区别?数据库已创建并表示模型。如果有人能详细说明,我将不胜感激,谢谢。
【问题讨论】:
标签: ruby-on-rails sqlite model-view-controller
数据库是您存储数据的一组表。
模型是代表代码中的表的 Ruby 类。这就是您实现与该表及其关系交互的代码的地方。
【讨论】:
数据库是实际存储数据的地方。该模型管理应用程序其余部分与该数据的交互。目标是将数据存储方式与使用方式的细节分开。
例如,如果没有模型,如果应用程序代码想要获取当前用户的姓名,它可能会直接查询它:select name from user where id = ?。使用模型,应用程序代码会询问用户模型。 user = User.find(1); user.name。使用模型,用户存储方式的详细信息可以更改,而不会破坏使用它的代码。例如,如果您更改 SQL 数据库,该模型将保护您免受 SQL 方言的更改。
在 Rails 中,模型通常使用 ActiveRecord 编写。这仍然泄漏了很多关于模型如何存储的信息:每个表一个类,每行一个对象,像where 这样的方法调用引用了表的具体细节,你仍然可以编写原始 SQL。 Repository Pattern 有助于进一步区分数据的存储方式和使用方式。
即使用户存储在数据库中,一个设计良好的用户模型也会隐藏,也许它存储在云中并且用户正在执行 API 调用。
另见...
【讨论】: