gpt4 book ai didi

c# - SQL : To split or not to split? 中的邮件表

转载 作者:太空宇宙 更新时间:2023-11-03 19:24:50 29 4
gpt4 key购买 nike

我有一个存储邮件的表 Mails(谁会想到... ;))。

通过 tinyint MailStatus,我决定这是 SentMail、Draft 还是 ReceivedMail。

现在我想知道 Table-Split 是否更合适,说有:

已发送邮件

邮件草稿

收到邮件

代替 MailStatus tinyint 标志。

但这也意味着我需要在用户删除或移动邮件时移动行(在一个表中插入,在另一个表中删除),而不是仅仅切换 int 值。

你对此有何看法?

最佳答案

从代码的角度来看,处理枚举比处理不同类型要简单得多。

从数据库的角度来看,将非常相似的数据存储在不同的表中的原因是:

  • 性能问题
  • 大小问题(单个表变得太大)
  • 数据库标准化问题(SentDateTime 字段的空值等)

在大多数情况下,您永远不会遇到任何大小/性能问题,因此问题在于您需要将数据标准化到何种程度。如果您真的不关心它,请不要让它变得比现在更复杂:将它留在一张表中,并在表中使用枚举 (int) 来区分状态。

关于c# - SQL : To split or not to split? 中的邮件表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9567115/

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