1

ユーザーがサインアップしたものに基づいて、いくつかのコースを提供するサブスクリプション ベースのサービスになるサイトを作成しています。1 人のユーザーが複数のコースに登録できます。

現在、db 構造は次のとおりです。

User
------
user_id | pwd | start | end



Courses
-------
course_id | description



User_course_subscription
------------------------
user_id | course_id | start | end 



course_chapters
---------------
course_id | title | description | chapter_id | url |

懸念事項は、user_course_subscription テーブルではできないことです (少なくとも現時点では方法がわかりません) 1 人のユーザーに複数のコース サブスクリプションを持たせることができます (毎回異なる course_id で同じ user_id を複数回入力しない限り)。または、フォーマットなどに多くの列を追加しますがcalculus_1 chem_1、コースのリストが大きくなるにつれて、大量の列ができてしまいます。

user_id を複数回入力することがこれを行うための最適な方法であるかどうか疑問に思っていましたか? または、テーブルを構造化する別の方法はありますか (または、すべてのテーブルを再構築する必要があるかもしれません)?

4

2 に答える 2

0

user テーブルの start 列と end 列の意味がわかりません。しかし、冗長性がないようです。

Boyce-codd normal form wikipedia の記事を確認してください。役に立つ例があります。

于 2013-09-08T20:18:36.027 に答える