分割关系table

Relation between divided table

我想找出最好的解决方案,以防万一我想创建两个 table,其中一个会存储 user_idname 等列, address 等,第二个 table 将仅用于存储登录名和密码数据。

到目前为止,我的想法是创建没有主键的登录名 table。我可以在第一个 table 中使用引用 user_id 的外键,并在 update/delete 中使用级联关系,这样每个 table 中的数据将保持相关。但我担心我的解决方案不好。你有更好的想法吗?顺便说一句,我还没有进入索引概念,所以你能帮我吗?

经验法则:如果你有一对处于 1:1 关系中的表,那么你可能设计错了。

在保证垂直分区的情况下存在性能异常,但您的情况并非如此。

"hide" 列有多种方法:

  • 垂直分区(如您所建议的)以及对表的权限
  • 列权限
  • VIEWs,以及对表和视图的权限。
  • API 代码(PHP 等),甚至不允许非管理员用户编写 SQL 语句。

我更喜欢最后一个选项。

密码应通过加盐+加密的单向哈希存储。然后,如果它们不小心暴露,密码也不会泄露。

至于FOREIGN KEYs,我更喜欢在应用程序中编码业务逻辑,而不是依赖于 FKs 的有限功能。