pau*_*lio 2 sql-server sql-server-2008
我有下表......
TABLE: Accounts
ID (int, PK, Identity)
AccountType (int, PK)
Username (varchar)
Password (varchar)
Run Code Online (Sandbox Code Playgroud)
我已经使用ID和AccountType列创建了一个复合键,以便人们可以使用相同的用户名/密码但不同的AccountTypes.
这是否意味着对于我尝试并链接到的每个外表我都必须创建两列?
我正在使用SQL Server 2008
这是否意味着对于我尝试并链接到的每个外表我都必须创建两列?
是的你将会.
但是,最好使用单独的表来存储用户名/密码并将此表链接到user_accounts(使用复合主键).
我已经使用ID和AccountType列创建了一个复合键,以便人们可以使用相同的用户名/密码但不同的AccountTypes.
对于当前的设计,具有相同id但不同的人AccountType可以具有不同的用户名和密码.
这是你应该如何做到的:
CREATE TABLE t_user (id INT NOT NULL IDENTITY PRIMARY KEY, Username VARCHAR(100) NOT NULL, YouShouldAlwaysUseSaltedAndHashedPasswords VARCHAR(64) NOT NULL)
CREATE TABLE t_user_account (user_id INT NOT NULL, account_id INT NOT NULL, PRIMARY KEY (user_id, account_id), FOREIGN KEY (user_id) REFERENCES t_user (user_id))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5849 次 |
| 最近记录: |