0

ユーザーが自分のクーポン コードを Web サイトに保存できるプロジェクトに取り組んでいるので、それを行う最善の方法を知りたいです。

たとえば、次のように、ユーザーを含む 1 つのテーブルがあるとします。

userId  |  firstName  | lastName  | codeId

そして、次のようなクーポンコードの表があります。

codeId  |  codeNumber

だから私ができることはに接続することです。codeId誰かuserIdがクーポンを保存するcodeIdと、クーポン テーブルの がcodeIdusers テーブルの になります。

しかし、ユーザーが複数のクーポンを持っている場合はどうすればよいでしょうか? ユーザーにどのように接続する必要がありますか?

私は何をすべきか2つのオプションがあります:

  1. のようにcodeIdクーポン テーブルからcodeIdユーザー テーブルに保存します。1,2,3,4,5

  2. クーポン テーブルに新しい行を作成し、クーポン テーブルに別のフィールドを追加して、クーポンを追加したユーザーの を入力することで、ユーザーをコードに接続しuserIdますuserId

では、2 つのオプションのどちらが優れているのでしょうか。

4

3 に答える 3

2

2 つのテーブル間の多対多の関係は、2 つを接続する 3 番目のテーブルを追加して解決する必要があります。

user_coupons
- userId
- couponId
于 2012-06-18T15:11:03.547 に答える
1

最初のオプションは、1-NF ルールに違反しています。つまり、どの列にも値のグループが含まれないということです。

これは典型的な 1 対多の関係です。別のテーブル User_Coupons (アンダースコアではない) を作成し、関連付けごとに UserID、CouponCode を含む行を作成する 2 番目のオプション。2 つの列は、両方とも連想テーブルの主キーになるように一意である必要があります。

于 2012-06-18T15:10:27.060 に答える
0

私があなただった場合、私のデータベースは次のようになります。

userId  |  firstName  | lastName

codeNumber | userId  

必要に応じて、任意のユーザーに多くの codeNumber を挿入できます。

于 2012-06-18T15:12:47.963 に答える