私はPHP開発者であり、MySQLの基本知識は持っていますが、私は個人的なプロジェクトに取り組んでいます。3つのテーブル - カスケード関係を使用するか、追加機能を追加しますか?
請求の詳細は、ストライプオブジェクトを模倣して保存されます。しかし、カスケードでインデックスを使用するか、各テーブルでインデックスを使用すべきかどうかは疑問です。
(簡略化した)例を説明しましょう。ユーザーにはサブスクリプションがあります。各サブスクリプションで月に請求書が発行されます。 (一部が失敗した場合や、いくつかの。)それぞれの請求書が1つの電荷を発生させます
table_user
- user_id
- username
- password
table_subscription
- sub_id
- start_date
- end_date
- amount
- user_id
table_invoice
- invoice_id
- period_start
- period_end
- amount
- paid
- subscription_id
table_charge
- charge_id
- amount
- status
- failure_code
- failure_reason
- invoice_id
を私のポイントは、私はすぐに、各ユーザの課金や請求書を一覧表示したいということです。 1つの請求/請求書は1人のユーザーに属します。私はちょうどサブスクリプションで(料金と請求書がリンクされているので)uder_idキーを使用する必要がありますか、それでも、請求書テーブルと請求テーブルの両方にuser_idを追加する必要がありますか?
SELECTより簡単ですが、将来的に請求書に関連しない請求を行う(1回限りの余分なものを購入する)が、そのユーザーにリンクする場合もあります。
いくつかの提案をお待ちしております。
これは設計上の決定です。私たちはすべての詳細や計画を知らないので、実際には答えられません。 – Shadow