Asp.net 添加1-1关系表(用户和用户设置)的挑战
我的问题与这个问题有关: 我有一个Users表,它已经有一堆记录了Asp.net 添加1-1关系表(用户和用户设置)的挑战,asp.net,.net,sql,sql-server,entity-framework,Asp.net,.net,Sql,Sql Server,Entity Framework,我的问题与这个问题有关: 我有一个Users表,它已经有一堆记录了 Users (Id, UserName, Password, FullName, Gender) 我需要为每个用户添加一组通知选项: NotifyForNewComment NotifyForNewPost NotifyWhenFriendSignsUp 我以后可能需要添加更多选项,但始终存在1-1关系,因此我的问题是,是将这些选项存储在单独的表中,比如UserSettings,还是将它们作为列添加到Users表中 在上面的
Users (Id, UserName, Password, FullName, Gender)
我需要为每个用户添加一组通知选项:
NotifyForNewComment
NotifyForNewPost
NotifyWhenFriendSignsUp
我以后可能需要添加更多选项,但始终存在1-1关系,因此我的问题是,是将这些选项存储在单独的表中,比如UserSettings,还是将它们作为列添加到Users表中
在上面的链接问题中,建议创建一个新表,并将UserSettings表中的UserId作为主键(否则,Entity Framework不喜欢它)。如果这是我必须做的,那么我有几个问题:
我认为您缺少UserSettings表的要点。它将有如下列:
- 用户设置SID
- 用户ID
- 通知
如果您确切地知道通知是什么,并且它们不会改变,那么您可以考虑将它们作为用户列中的单独列添加。
另一方面,这是一种自然的1-N关系,您可能应该实现它。我认为您缺少UserSettings表的要点。它将有如下列:
- 用户设置SID
- 用户ID
- 通知
如果您确切地知道通知是什么,并且它们不会改变,那么您可以考虑将它们作为用户列中的单独列添加。
另一方面,这是一种自然的1-N关系,您可能应该实现它。您可以将所有Notify列作为布尔值添加到用户表中,然后将活动列切换为true吗?这对我来说是最简单的,但我只是想知道这是否是一种好的数据库设计……是的,这是一种好的数据库设计。简单明了是好的。卷曲和坚硬是不好的。很少需要1对1的表关系。能否将所有Notify列作为布尔值添加到用户表中,然后将活动列切换为true?这对我来说是最简单的,但我只是想知道这是否是一个好的数据库设计…是的,这是一个好的数据库设计。简单明了是好的。卷曲和坚硬是不好的。很少需要一对一的表关系。