ユーザーがライセンスを購入する行為を処理する必要があるアプリを設計しています。私は認証部分には焦点を当てていませんが、プロセスのトランザクション部分のみに焦点を当てています
基本的に私はこれらのモデルを定義します:
1) ユーザー - ユーザーのデータを保持します
。 2) ライセンス - ライセンスのデータを保持します。ユーザーは複数のライセンスを購入できるため、ユーザーとは多対 1 の関係があり、トランザクションとは 1 対 1 の関係があります (1 つのライセンスは 1 つのトランザクションのみに関連して
います) 3) 支払い方法 - 支払い方法を保持するもの (基本的にはクレジット)カード)。これはユーザーと多すぎる関係を持っています
4) トランザクション - トランザクションのデータを保持し、ユーザーとの 1 対 1 の関係 (1 つのトランザクションは 1 人のユーザーのみによって行われます) と支払いとの 1 対 1 の関係を持ちます。メソッド (1 つのトランザクションが 1 つの支払い方法に関連付けられています)
これは正しいと思いますか?
ユーザーとライセンスの間に関係を追加することで冗長性を追加しています (これはトランザクションによってのみ接続できます) が、SQL でいくつかの JOINS を節約できると思います。