我正试图建立一个数据库来保存/维护一组用户权限。我也在使用microsoftsqlservermanagementstudio。
我做了一个accounts表,pk=userid。
我用pk=profileid创建了一个profiles表
我使用以下sql语句创建了一个userprivileges表

CREATE TABLE UserPermissions
(
    UserId int REFERENCES Accounts (UserId),
    ProfileId int REFERENCES Profiles (ProfileId),
    PRIMARY KEY (UserId, ProfileId)
)

但是,当我从userprivileges表执行select查询时,即使我在前面的两个表中确实有一些条目,也不会返回任何内容。
根据我对外键的理解,它们的值取自引用表。既然引用的表确实有条目,为什么没有条目被输入到userprivileges表中?

最佳答案

外键只是参考。if并不意味着您不需要表中的条目。你需要他们!但是这些条目也存在于相关表中。这里有一个很好的解释:http://www.w3schools.com/sql/sql_foreignkey.asp

10-06 10:50