2017-03-28 16 views
0

私はSQLとデータベース管理の初心者です。私はデータベーステーブルをモデル化する方法がわかりません。 usersordersbillslessonsticketscoaches複数の多対多の関係

は、私はこれらのテーブルを持っています。

  • レッスンはコーチから投稿されています。
  • ユーザーはレッスンを注文することができます。
  • 注文後に請求書が登録されます。
  • ユーザーはチケットを注文することもできます。
  • チケットはレッスンにアクセスします。
  • ユーザーがチケットを購入すると、コーチ賞金または半額またはチケット価格が適用されます。

したがって、ユーザーが特定のレッスンで6ドルのチケットを購入すると、レッスンを所有するコーチは3ドルを得ることになります。

coachesの別のbillsテーブルが必要ですか?同じbillsテーブルを使用して、購入したレッスンの利益を登録できますか? 上記のアイデアのリストをどうやって作成するのか、本当にわかりません。申し訳ありません。

今のところ私はこれをやっているだけですが、私はDBの残りの部分をどのように完了するか分かりません。

|bills|<--|orders| *<------ |users| 
      | 
      v 
      * 
     |order_lesson| 
      * 
      /\ 
      | 
     |lessons| *<----- |coaches| 

私はあなたに完全な回答を求めることはできませんが、実際には説明や指導が必要です。事前にどうもありがとうございました。

+1

コーチに与えられた金額は固定料金であるようです。これが私の言うことからのインスタンスであれば、コーチがクエリを取得する量を簡単に計算できるので、別のテーブルは必要ありません。各レッスンの詳しい情報や詳細なレポートが必要な場合は、請求カテゴリが最適です。 – Matthew

+1

SQLで覚えておくべき最も重要なことは、各テーブルにデータを少しだけ繰り返す必要があることです。テーブルに繰り返しのトンがある場合は、データベースのリファクタリングを調べる必要があるかもしれません。 – Matthew

+0

@Matthew私は、ありがとうございます。 – dwix

答えて

1

私は、チケットが他の正規の注文と違うと言うことができますから、唯一の違いはコーチが得るお金であるので、注文と一緒に置くことができます。だから、おそらくordersテーブルの列は、注文の種類を示すでしょう。

|bills|<--|orders|<----|users| 
       /\ 
       | 
       |lessons|<---|coaches| 
+0

ありがとうございました... – dwix