gpt4 book ai didi

database-design - 数据库设计 3NF 有必要吗?

转载 作者:行者123 更新时间:2023-12-05 06:43:33 55 4
gpt4 key购买 nike

这是我正在为一个基于投票的网站 (overpowered.info) 设计的数据库。 http://i57.tinypic.com/2v9925s.png我对用户和安全之间的交互很感兴趣。我需要这个数据库在 3NF 中,这是我第一次通过规范化过程对数据库进行规范化。起初我有安全答案和用户内部的安全问题。但是,答案与问题相关,并且取决于问题和用户。如果我在 USER 实体中有 USER_ANSWER 和 QUESTION_ID 并且一起摆脱安全性,它是否仍在 3NF 中?我知道安全性与用户是一对一的,应该避免这种情况,但我最终不确定这一点。

最佳答案

它不能在 3nf 中。一方面,答案在功能上取决于 question_id,它不是用户 key 的任何部分。这是一个建议:

User Security Question and Answer

我假设 Questions 表包含用户从中选择的常用问题列表,然后提供所选问题的答案。因此,Security 实现了 User 和 Questions 之间的一对多关系。 User_ID 字段既是User 表的 FK,也是 PK,因此不能多次列出任何用户。对于每个用户,还会列出相关问题以及该用户对该问题的回答。

请注意,我还将密码字段移到了一个单独的表中(连同哈希种子——您只存储最终的哈希值而不是文本密码,对吗?)。将其视为“安全范式”(SNF),其中敏感数据(可能包括帐号、SSN 等)被放置在单独的表中。然后可以严格限制对此类表的访问。如果用户表本身遭到黑客攻击,敏感数据(包括问题和答案)将不会受到损害。不,在任何关于规范化的教程中都不会找到 SNF,但我已经使用它多年并且它可以提高安全性。限制对整个表的访问比限制对表中特定字段的访问要容易得多。

关于database-design - 数据库设计 3NF 有必要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32959593/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com