gpt4 book ai didi

mysql - 很简单的数据库设计题

转载 作者:行者123 更新时间:2023-12-01 00:06:52 25 4
gpt4 key购买 nike

假设我有一个用户之间的消息传递服务,包括公共(public)消息和私有(private)消息。我希望每个人都可以看到“公共(public)”的,而“私有(private)”的是真正私有(private)的。两种设计中哪一种最好?

一)

有一个名为“messages”的数据库

  • 编号
  • 发件人
  • 接收者
  • 时间戳
  • 值(value)
  • 隐私(这将是一个 bool 值,0 表示私有(private),1 表示公共(public))

b)

有两个数据库,一个名为“messages_public”,另一个名为“messages_private”,具有相同的以下列

  • 编号
  • 发件人
  • 接收者
  • 时间戳
  • 值(value)

我知道第二种方法是多余的,但在发生错误的情况下更安全,私有(private)消息不会意外地显示给所有人(这将是一场灾难 ), 我对吗?另一方面,在第一种情况下,它确实可以。 SQL 查询中的一个简单错误可能无法过滤私有(private)消息,并且会显示所有消息。

最佳答案

我认为这两种设计都可以,但我更喜欢第一种,因为它消除了冗余。

在您的情况下,安全性将归结为您的应用程序代码,这将必须保证私有(private)消息仅传递给适当的用户。如果应用程序代码存在缺陷,任一数据库模式都可能将私有(private)数据暴露给错误的用户。

关于mysql - 很简单的数据库设计题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6756323/

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