背景のための共通のフレームワークを開発するためにASP.Netコアをベースにして
EDITORIAL
これは、私のことは良いことができませんでした場合は、あなたを助けるために、学習プロセスの枠組みの中で学んで設定されています。エラーを発見された場合、私に知らせてください、私が最初に修正されます。
知っている、ホイールを複製し、作成しない理由を知っています。私はコードを書くのに長い時間のために自分が退屈見つけ、この時間は、他の人に見に行くので、私はなぜ理解感のようなものになります。使用していますが、それが使用されている理由を知らないだけでなく。
本当に、ただ常に学び、ノックしないでください。
デモ住所:http://app.guoddy.com
ソースアドレス:https://github.com/jellydong/LJDAPP
データは、テストモードに設定し、保存し、そのログインを避ける本物ではありません。
開発ツール
1.Visual Studioの2019
2.SQLサーバー2017
3.Powerデザイン
全体的な効果
家
メニュー管理
)
の役割と権限の設定管理
権限のデザイン&なぜ
私はここで主に7つのテーブル、4つのテーブル、3つの関連表に関係しています。
なぜ、この設計は、私は、これはほとんどのシステムのニーズかもしれないと思います。
ユーザーは複数の役割、または役割を持つことができ、何のデザインセンスがない、多くのユーザーおよびロールに1.多く、人が実際に多くの帽子を着用することがあります。
2.あなたは、ユーザーに直接助成金を与えるか、付与された権限を取り消すことができます。これはその5つのテーブルを必要としないので、もしいくつかは、これは必要ではないと思うことがあります。多くの場合、これは非常に正常需要であるので、しかし、私は、ここに予約を持っています。
3.無制限のメニューレベルは、実際の需要に基づいて設定パラメータは、システムを変更します。
細部
ObjectID
、Remark
、Status
、CreatedBy
、CreatedTime
、ModifiedBy
、ModifiedTime
、Sort
それはデフォルトのフィールドです。
SysUserInfoユーザテーブル
- ユーザデータが大きい場合、このテーブルは、実際にのみ保持する必要がある
ObjectID
、ULoginName
、ULoginPWD
あなたは速度を向上させることができますので、それについて、すべての情報を掲載する必要が保存されません。- ユーザーおよびロール、多くのR_sysUserInfo_sysRole
- ユーザーと権限の項目 - 多くの(直接AUTHORIZEまたは禁止)R_UserPermissions
名 | 説明 | タイプ | 主キー |
---|---|---|---|
オブジェクトID | 主キー | NVARCHAR(50) | TRUE |
ULoginName | ユーザー名 | NVARCHAR(20) | |
ULoginPWD | パスワード | NVARCHAR(50) | |
URealName | 本名 | データ型はnvarchar(10) | |
UTelphone | 電話 | NVARCHAR(20) | |
UMobile | 電話番号 | NVARCHAR(11) | |
UEmail | Eメール | NVARCHAR(50) | |
UQQ | NVARCHAR(20) | ||
UGender | 性別:0 F; 1-男性; 2-機密 | int型 | |
UDepID | 部門 | NVARCHAR(50) | |
リマーク | リマーク | NVARCHAR(500) | |
状態 | ステータス:0 - 有効、無効の1- | int型 | |
によって作成された | 作成 | NVARCHAR(50) | |
CreatedTime | 作成 | 日付時刻 | |
ModifiedBy | 修飾子 | NVARCHAR(50) | |
ModifiedTime | 変更されました | 日付時刻 | |
ソート | 値で並べ替え | int型 |
SysRoleロールテーブル
- こうした管理者、一般ユーザとしての役割、の分類。
- 役割のユーザーの多くR_sysUserInfo_sysRole
- 役割の権限の多く-R_RolePermission
名 | 説明 | タイプ | 主キー |
---|---|---|---|
オブジェクトID | 主キー | NVARCHAR(50) | TRUE |
RNAME | 役割名称 | VARCHAR(50) | |
リマーク | リマーク | NVARCHAR(500) | |
状態 | ステータス:0 - 有効、無効の1- | int型 | |
によって作成された | 作成 | NVARCHAR(50) | |
CreatedTime | 作成 | 日付時刻 | |
ModifiedBy | 修飾子 | NVARCHAR(50) | |
ModifiedTime | 変更されました | 日付時刻 | |
ソート | 値で並べ替え | int型 |
SysMenusメニュー表
- メニューデザインのテーブルの後のテーブルを変更し、良いスタートです。開発プロセスのその後の増加
IsLast
;Hierarchy
除去MAction
- isLastをマークするために使用、自動的に、そのような追加および削除されたデフォルトの方法を高めるために私たちの最後の段階であれば、最後の1ではありません。
- 行うことができます私たちの前に、レベルをマークするために使用される階層は無制限ですが、通常は3になりますので、システム・パラメータを設定するには、実際の必要性、メンテナンスの時間制限を確認することができます。
- IsMenuShow是否作为菜单显示,也就是左侧菜单递归的,因为有部分API不需要作为菜单显示,并且授权的方式也会不一样。
- 菜单角色多对多 R_RolePermission
- 菜单权限项一对多
Name | 说明 | 类型 | 主键 |
---|---|---|---|
ObjectID | 主键 | nvarchar(50) | TRUE |
MName | 名称 | nvarchar(100) | |
MUrl | URL | nvarchar(100) | |
MArea | 区域 | nvarchar(100) | |
MController | 控制器 | nvarchar(100) | |
MIcon | 图标 | nvarchar(100) | |
IsLast | 是不是最后一级菜单:0-是;1-否 | int | |
IsMenuShow | 是不是作为菜单显示:0-是;1-否 | int | |
Remark | 备注 | nvarchar(500) | |
ParentID | 父ID | nvarchar(50) | |
Status | 状态:0-启用;1-禁用 | int | |
Hierarchy | 层级 | int | |
CreatedBy | 创建人 | nvarchar(50) | |
CreatedTime | 创建时间 | datetime | |
ModifiedBy | 修改人 | nvarchar(50) | |
ModifiedTime | 修改时间 | datetime | |
Sort | 排序值 | int |
SysFunction 菜单按钮表 (菜单权限项表)
- SysFunction一开始我是叫菜单按钮表的,我计划是查询、新增编辑删除、其他权限这样控制,但后来发现这样不好,所以全都分开,每个方法都要记录。当然为了方便,通用的方法,在增加菜单的时候会自动添加上。
- 菜单权限项菜单是多对一关系
Name | 说明 | 类型 | 主键 |
---|---|---|---|
ObjectID | 主键 | nvarchar(50) | TRUE |
FName | 名称 | nvarchar(50) | |
FFunction | 方法 | nvarchar(50) | |
FIcon | 图标 | nvarchar(50) | |
ParentID | 所属菜单 | nvarchar(50) | |
Remark | 备注 | nvarchar(500) | |
Status | 状态:0-启用;1-禁用 | int | |
CreatedBy | 创建人 | nvarchar(50) | |
CreatedTime | 创建时间 | datetime | |
ModifiedBy | 修改人 | nvarchar(50) | |
ModifiedTime | 修改时间 | datetime | |
Sort | 排序值 | int |
R_sysUserInfo_sysRole用户和角色关联表,记录用户和角色的对应关系。
R_RolePermission 角色菜单权限项关联表。
比如一个角色有用某菜单下的查询和删除权限,那么这个表应该是具有两条记录的。
R_UserPermissions 用户菜单权限项关联表。
HavePermission
记录该用户是 是否有权限:0-无权限;1-有权限
后续处理的时候,要从获取的权限记录中排除直接无权限的记录,增加有权限的。
总结
実際には、権限についての多くのオンラインの記事には、自分の見て前に、必ずつまずい感じるので、私は最終的にそれを自分でするつもり。終了する、と理解している時間。私はあなたが問題を持っている場合、私に知らせて、私はすぐに修正しますしてください、不明瞭ではないか、設計が合理的である私は、ここで説明したのか分かりません!
パワーデザインは、私が使用される最初の時間ですが、また、初めての値下げは、ブログを書くように、ハンズノック、非現実的な期待を持っていません。
このフレームワークはすぐに学習に適した、コードを生成するために、T4テンプレートをアプリケーションを構築することができます。ご質問がありましたら、私に連絡してください
デモ住所:http://app.guoddy.com
ソースアドレス:https://github.com/jellydong/LJDAPP
データは、テストモードに設定し、保存し、そのログインを避ける本物ではありません。