権限テーブルと6 CONTENT_TYPEジャンゴ

権限テーブルと6 CONTENT_TYPEジャンゴ

表6権限

私たちは前にテーブルの多くが生成されますデータベーステーブルを移行する際に、我々は今、テーブルのいくつかはやっているの話をすることができます。

IMG

私たちは、ユーザー属性、役割やテーブル、テーブルと権限の多くを維持するために使用さ3メートル便利Userテーブルの先頭、について話すだろう。各ユーザーは、それぞれの役割が対応する権限を持っている、ユーザーが複数の役割を持つことができ、役割が外部キーフィールドに複数の値がある引き起こし、複数の権限を持つことができ、対応する役割を持っている、データベースが合いません3つの設計パラダイム。したがって、リードアウトテーブル6。

IMG

一部のユーザーが存在するため、第1、第2のテーブルの行と3番目のテーブルには理解しやすいですが、意味は、テーブルの真ん中に行くが同じではない、彼は、テーブルとユーザの権限との間には直接的な関係で、彼は何の役割を持っていないが、そこになりますこのよう明らかにテーブルのレコードを設定し、所有者の息子、などの権利は、そう、このテーブルを生まれた、ボスの息子の役割は不可能ですが、権限のボスの息子がたくさんあるでしょう。

CONTENT_TYPE

# 给Django中的所有模块中的所有表进行编号存储到content_type表中
# 应用一:权限表的权限是操作表的,所有在权限表中有一个content_type表的外键,标识该权限具体操作的是哪张表

非常に抽象的に理解するには、その栗を使用

カリキュラムには、会員が存在しない、自由なコース、学位コース、会員クラス、お金のない自由なレッスンがあり、今があります。学位コースの価格、ない会員。メンバーのレッスンは、会員で、何の価格はありません。

"""
Course:
name、type、days、price、vip_type
基础  免费课  7      0
中级  学位课  180    69
究极  会员课  360         至尊会员
"""

それは非常に正常に見えますが、あなたはより多くまで録音場合、それはおそらく、価格やvip_typeフィールドの数十があるだろう、データベースのテーブルの設計と明らかに矛盾している空白、です。だから、価格とvip_typeフィールドが直接削除、プラスcontent_type_idフィールド。このフィールドの内容は、新しいテーブルCONTENT_TYPEテーブルのレコードIDです。

フルバージョン

"""
Course:
name、type、days、content_type_id
基础  免费课  7    null
中级  学位课  180   1
究极  会员课  360   2

app01_course_1
id、price

app01_course_2
id vip_type

content_type表(Django提供)
id、app_label、model
1   app01    course_1
2   app01    course_2
"""

CONTENT_TYPEテーブル対応表、価格があればコースのテーブルのレコード、さらにはテーブルcourse_1がvip_typeテーブルcourse_2テーブルがあっても、そこにあります。

おすすめ

転載: www.cnblogs.com/chanyuli/p/11965096.html