我正在创建用户管理数据库架构。我使用Postgresql作为数据库。以下是我的方法。如果我使用此结构,请建议是否存在任何性能问题。
要求:
方法
有什么建议吗?
答案 0 :(得分:0)
在自然与代理主键的问题上,你正在涉及火焰战争领域。我同意你的观点并经常使用唯一键作为外键,并指定自然主键。在PostgreSQL上这是安全的(在MySQL或MS SQL上,这将是一个坏习惯)。
在PostgreSQL中,主键和唯一约束之间的唯一区别是:
实际上,如果您将表定义为NOT NULL UNIQUE
,则它与单个主键大致相同。
在其他dbs上,表格结构经常针对主键查找进行优化,这就是为什么这是一个问题,并且可能有一些工具不喜欢它,但这些都是db设计本身以外的问题。< / p>
你最好使用普通的连续剧并拥有真正的访问控制,而不是试图在默默无闻中构建东西。默默无闻的控制可能会表现得更糟,但不如仅仅做正确的事情那么安全。