2017-03-15 1 views
0

私は2つのテーブルを持っていますサブスクリプションお支払い。これらの2つは、と一対一の関係の関係に関連しています。基本的にはすべてのサブスクリプションは(user_id経由)ユーザーと同様ユーザーに属しすべての支払いに属します。 (はい私は知っている)彼らはと1対1の関係で結ばれているので、論理的には両方ともuser_id行を持つ必要はありません。しかし、それは彼らがユーザーに属していることを示すと私は確信していません両方のために非常に重要です。私はその債券に頼るべきか、それとも両方とも彼らが同じであることを確信していますか?これはもっと理論的な質問ですが、テーブルの少しの例は以下のとおりです。1対1の関係であっても、両方のテーブルに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対多のの支払いおよび購読関係を持ちます。

+2

実際には、1人のユーザが1つのサブスクリプションしか持たず、1回の支払いしかできないと言っていますか?それは、それが一度限りのものであれば、それは実際にサブスクリプションではないので、非常にありそうもなく、矛盾しているように思えます。 – jeroen

+0

@ jeroen実際には、ユーザーは多くの(過去の購読など)を持つことができます。私はそれを編集します。どうも。 – Skeletor

+1

@Skeletor、複数の支払いはどうですか?たとえば、一定期間(Spotifiy Premiumなど)の場合、サブスクリプションに複数回支払う可能性が非常に高いです。潜在的に、ユーザーとサブスクリプションとサブスクリプションとの間に1対1の関係があり、1つのサブスクリプションと1サブスクリプションの間に1対1の関係があるようです。 –

答えて

1

jeronは、データモデルが間違っていると言いました。しかし、そのような条件がある場合は、テーブルは次のようになります。

User model { 
    id, username, email 
} 
Payment model { 
    user_id, payment_stuff 
} 
Subscription model { 
    user_id, subscribe_stuff 
} 
関連する問題