2

我对 MySQL DBMS 非常熟悉。我很想知道设计更复杂的关系数据库的最佳方法。就像,假设我有一个“用户”表,其自动增量值为“主键”。使用这个“PK”作为“外键”,我可以创建一个名为“user_details”的表,我可以在其中存储用户的所有机密数据。

是的,这是一个很好的方法。但我想知道是否有任何复杂的方法可以做到这一点。因为如果本地主机中的任何主体访问数据库,他们可以根据用户“PK”轻松获取“user_details”数据。

此外,使用应用程序生成的唯一代码作为数据库中的“PK”和“FK”是个好主意,还是数据库中的自动增量值绰绰有余?

4

1 回答 1

0

这是一个非常模糊的问题,所以我只列出几点:

  • 您的数据模型不应该关心服务器安全。为您的应用程序准确构建数据模型,并尽可能锁定对数据库和表的访问。这些是单独的问题。
  • 对只允许最终用户知道的数据使用加密。例如,密码获得单向加密。
  • MySQL 的自动增量对于大多数用例来说已经足够了。我有时让应用程序生成 ID 的唯一一次是在我需要更多集中控制或有独特要求的多主复制数据库上。这并不总是必要的,因为您可以为每个服务器单独设置自动增量起始编号,而不必担心服务器会生成冲突的 ID。生成自己的 ID 有时会出现性能缺陷,例如生成 GUID 比递增整数需要更长的时间。
于 2013-09-19T18:06:47.940 回答