我有一对数据类型,其中每个X
可能有多个Y
,而每个Y
最多只有一个X
。
在数据库中,我将其视为
CREATE TABLE xs (
id INTEGER NOT NULL PRIMARY KEY
);
CREATE TABLE ys (
id INTEGER NOT NULL PRIMARY KEY,
x_id INTEGER FOREIGN KEY REFERENCES xs (id) -- may be NULL
);
使用ActiveRecord,我很容易理解X
has_many
Y
,但我如何表达每Y
最多只有X
belongs_to
?我认为x_id
通常会有效,但我不确定当NULL
为{{1}}时情况会如何。
答案 0 :(得分:2)
belongs_to :x
。
如果x_id
不存在,y.x
将返回nil
。
拥有belongs_to并不意味着如果该值不存在,一切都会爆炸。