2

Web サイト用のユーザー ログイン システムを作成していますが、データベースの作成に助けが必要です。これまでのところ、これらの 3 つのテーブルがあります。これは適切なデータベース スキーマだと思いますか? そうでない場合、あなたは何を提案しますか?

---Users---
user_id
user_name
user_email
user_firstname
user_lastname
user_state
user_country
user_occupation
user_dob
user_accountcreationdate
user_sex
user_role
user_password

---Roles---
role_id
role_name
role_description

---Logins----
user_id
last_login
browser_type
ip_address

編集****これは正しいでしょうか?ユーザー ロールの 4 番目の表に追加しました。4 番目のテーブルを追加すると、Users テーブルから user_role を削除できるということですか?

---Users---
user_id
user_name
user_email
user_firstname
user_lastname
user_state
user_country
user_occupation
user_dob
user_accountcreationdate
user_sex
user_role
user_password

---Roles---
role_id
role_name
role_description

---Logins----
user_id
last_login
browser_type
ip_address

---User Roles---
user_id
role_id
4

2 に答える 2

1

スキーマは、各ユーザーが 1 つのロールしか持たないことを示しています。おそらく、それよりも細かく実行したいことがすぐにわかるでしょう。user_id を role_id にマップする user_role テーブルを用意することをお勧めします (date_granted、date_revoked、granted_by などと共に)。

本当に正規化したい場合は、users.occupationを職業テーブル への外部キーにします。も。

パスワードの保管方法には十分注意してください。

成功したログインをログに記録している場合は、失敗したログインもログに記録しないでください。これにより、誰かが助けを必要としているか、そのアカウントがハッキングされていることがわかります。

幸運を。

于 2012-10-20T19:10:43.760 に答える