两个表都应该有user_id,即使是一对一的关系吗?

时间:2017-03-15 08:13:03

标签: php laravel foreign-keys

我有两张表订阅付款。这两个与一对一关系相关。基本上每个订阅属于用户(通过user_id),每个付款属于用户同样。 (是的,我知道)因为它们与一对一关系绑定,所以从逻辑上讲,它们都不需要携带user_id行。但对于他们展示他们所属的用户并且我不确定而言,这两者都至关重要。我应该依靠这种关系还是可以保持他们的user_id(即使他们会一样)?这更像是一个理论问题,但下面是一个小例子。

payments
id   user_id   paymentstuff  ...
1    42         ...
2    16         ...

subscriptions 
id   payment_id   user_id   subscriptionstuff  ...
1    1            42        ...
2    2            16        ...

users
id   name   lname userstuff  ...
16   john   doe   ...
42   jane   foe   ...

PS:正如@jeroen和@ThomasSmyth所提到的,用户可以拥有多个订阅和用户也可以有很多付款。因此,用户部分与付款和订阅具有一对多关系。

1 个答案:

答案 0 :(得分:1)

正如jeron所说,您的数据模型似乎有误!但是如果你有这样的条件,你的表可能是这样的:

User model {
    id, username, email
}
Payment model {
    user_id, payment_stuff
}
Subscription model {
    user_id, subscribe_stuff
}