MySql中关系数据库设计的最佳方式

时间:2013-09-19 16:23:01

标签: mysql sql database relational-database primary-key

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

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

另外,最好将应用程序生成的唯一代码用作数据库中的“PK”和“FK”,或者数据库中的自动增量值是否足够?

1 个答案:

答案 0 :(得分:0)

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

  • 您的数据模型不应该与服务器安全性有关。为您的应用程序准确构建数据模型,并尽可能锁定对数据库和表的访问。这些是不同的问题。
  • 对仅允许最终用户了解的数据使用加密。例如,密码可以获得单向加密。
  • MySQL的自动增量足以满足大多数用例。我有时会让应用程序生成ID的唯一时间是multi-master replicated databases,我需要更多的集中控制或具有独特的要求。这并不总是必要的,因为您可以为每个服务器单独设置自动增量起始编号,而不用担心生成冲突ID的服务器。生成自己的ID有时会出现性能上的问题,例如:生成GUID所需的时间比递增整数要长。