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