Active Record 中的表关系详解
在数据库应用开发中,多数应用会涉及多个表,这些表之间通常存在着各种关系。例如,订单可能包含多个订单项,每个订单项又会引用特定的产品,产品可能属于多个不同的产品类别,而每个类别又可能包含多个不同的产品。如何处理这些表之间的关系,是数据库开发中的一个重要问题。本文将详细介绍如何使用 Active Record 来处理表之间的关系,包括创建外键、在模型中指定关系以及使用各种声明来管理关联等内容。
1. 创建外键
两个表之间存在关联,通常是因为一个表包含另一个表主键的外键引用。以下是一个迁移示例,其中 line_items 表包含对 products 和 orders 表的外键引用:
def self.up
create_table :products do |t|
t.string :title
# ...
end
create_table :orders do |t|
t.string :name
# ...
end
create_table :line_items do |t|
t.integer :product_id
t.integer :order_id
t.integer :quantity
t.decimal :unit_price, :precision => 8, :scale => 2
end
end
需要注意的是,这个迁移并没有定义任何外键
超级会员免费看
订阅专栏 解锁全文
5

被折叠的 条评论
为什么被折叠?



