属性和列的区别是什么?

4
两个术语"属性"和"列"似乎可以互换使用...但我猜想,列是指框,而属性是放入框中的内容。

2
模型的属性,表格的列 - Pavan
1
从数据库的角度来看,列(column)是整个结果集,而属性(attribute)可以是列名。例如:select id from some_table;。在这里,列 = id列表,而属性 = id - Abhi
3个回答

4

“列”是数据库表中的一列,而“属性”是对象的外部可见面。

“属性”用于模型,“列”用于数据库表。

以下是模型的架构:

create_table "retreats", force: :cascade do |t|
  t.string "title"
  t.string "tagline"
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
end

在这里,“retreats”是一个数据库中的表,具有以下列:“title”,“tagline”,“created_at”和“updated_at”。
该表具有模型Retreat,其具有属性“title”,“tagline”,“created_at”和“updated_at”。您可以在页面上获取有关属性的更多信息。
它们很相似,但由于其上下文而不同。
编辑1:
数据库表中的一行由Rails中的对象映射。该对象的属性值是该行中列的值。
正如vojic指出的那样,一列包含所有对象的属性值。

1
我想补充一点,“列”也可能指表格中完整的属性实例集合。你可以使用 SELECT 语句选择一列,查询将返回每个结果行中该列(一个属性)的值。 - vijoc

0

ActiveModel 提供了一个 attributes API 用于方便,该 API 将实例变量映射到哈希表上以便于使用。 https://blog.metova.com/rails-5-attributes-api

ActiveRecord 在 ActiveModel 的基础上自动将 columns 映射到 attributes 上,您仍然可以定义没有列的自定义属性,例如这个好的例子。http://api.rubyonrails.org/classes/ActiveRecord/Attributes/ClassMethods.html

因此,在标准的 Rails 应用程序中,ActiveRecord 模型会自动将列转换为属性,您仍然可以添加自己的属性。您还可以拥有其他 ActiveModels,它们具有自己的持久化机制(或不具有),并使用相同的属性 API,因此标准的 Rails 组件可以将其视为像 ActiveRecord 一样。


0

希望这能有所帮助: 在此输入图像描述

来自: Peter Bruce, Andrew Bruce, Peter Gedeck - Practical Statistics for Data Scientists 50+ Essential Concepts Using R and Python-O'Reilly Media (2020)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接