1

ORM を理解しようとしており、次の説明の例を探しています。

テーブルはクラスにマップされ、行はオブジェクトにマップされ、列はオブジェクト属性にマップされます

テーブルがクラスにマップされることは理解していますが、行がオブジェクトにマッピングされ、列がオブジェクト属性にマッピングされるという用語は混乱を招きます。

4

3 に答える 3

3

実際の例が最も役立つと思います。これを試して:

ルビーとレール:

クラスの作成 (テーブルの作成)

class House < ActiveRecord::Base
  attr :length, :width, :finish, :price, :available
end

インスタンスの作成 (行の挿入)

my_house = House.new(:length => 23, :width => 12, :finish => 'siding', 
:price => '$100,000.00', :available => false)

インスタンスを取得する (行を選択)

my_house = House.find(1)
puts my_house.length, my_house.width, my_house.price, 
my_house.finish, my_house.available?

SQL:

テーブルの作成 (クラスの作成)

create table house(
length Integer, 
width Integer, 
finish Varchar(255), 
price Text, 
available Boolean)
# Note this is generic SQL, adapt as needed 
# to your implementation - SQLserver, Oracle, mySQL, etc.

行の挿入 (インスタンスの作成)

insert into house (length,width,finish,price,available)
values            (23, 12, 'siding', '$100,000.00', false)

行を選択 (インスタンスを取得)

my_house = select * from house where id = 1 
于 2013-04-14T15:13:50.407 に答える
2

ここに私が絵を描いている間にいくつかの良い答えがありましたが、私の簡単な答えが役立つことを願っています:(
質問に「レール」のタグを付けたので、レールコードを適用します)

class User < ActiveRecord::Base
  attr_accessor :first_name, :email
end

puts User.inspect # => class
puts u = User.create(:first_name => 'name', 
                     :email => 'em@il.com') # => object (class instance)
puts u.name # => object's attribute

DB:
ここに画像の説明を入力

于 2013-04-14T15:41:05.513 に答える