消息通知应用程序数据库结构设计

3
我正在开发一个Android通知应用程序。我的数据库结构让我感到不确定。
当一个用户向其他用户发送通知时,我会在我的数据库表(Notification)中插入单个行,当一个用户将相同的通知文本发送给多个用户时,我会在表中插入多个行。
创建不同用户的多行是否是正确的方法呢?enter image description here

你想得到什么样的答案才会接受它作为正确答案呢?看起来你只是在与人们进行交谈时引导他们,而不是陈述一个需要解决方案的离散问题。 - Doug Stevenson
@DougStevenson。抱歉拖延了。但我正在学习这个链接,这是0X0nosugar给我的。这样我就能确保采用正确的方法。 - Nimish Patel
1个回答

2
创建不同用户的多个行是否是正确的方法?
对于这种方法,您对其持怀疑态度是非常正确的。在没有关系型数据库的时代,有时候没有其他选择。 如果您使用具有多个行的数据库模式,则最终会将某些值存储(并且也会处理)更多次,而关系型数据库的发明则旨在避免冗余,因为冗余在存储、性能和维护时间方面都非常昂贵。
在您的表Notification中,唯一不会被存储多次的列是ToUserId。
因此,我认为您可以使用不带ToUserId列的Notification表。该信息可以放入一个新表中,其中包含两个数据列:NotificationId(作为指向通知信息的外键)和ToUserId(指向用户数据)。

这个新表有什么好处呢?你能指导一下吗? - Nimish Patel
1
@Nimish Patel - 我不是数据库超级专家,所以我想向您指出一些可靠的资源 :) 关于关系数据库设计的快速入门教程 - Bö macht Blau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接