我的问题涉及到这样一个问题:Entity Framework One-To-One Mapping Issues挑战,加入1-1关系表(用户和UserSettings)
我已经有一堆记录的用户表。
Users (Id, UserName, Password, FullName, Gender)
我需要添加一堆通知选项为每个用户:
NotifyForNewComment
NotifyForNewPost
NotifyWhenFriendSignsUp
我可能要在以后添加更多的选择,但总是会有一个1-1的关系,所以我的问题是将它们存储在单独的表格中,比如UserSettings,还是将它们作为列添加到Users表中。
在上面的链接问题中,建议是创建一个新表并将UserSettings表中的UserId作为主键(因为否则实体框架不喜欢它)。如果这是我必须做的,那么我有几个问题:
我所有的表都有一个Id列。 UserSettings将不会有Id列,因为UserId将是主键?
我不得不打开UserSettings表的Identity插入,这样当我插入一个新的用户记录时,我也可以用UserId插入一个UserSettings记录?
鉴于我已经在Users表中有一堆记录,如果现在要引入与User表有1-1关系的新UserSettings表,我该怎么办?我是否只运行一个脚本来为Users表中的每个用户添加记录并添加一些默认值?或者我把它变成0-1的关系?
由于它是1-1关系,我不应该担心一个新表,而是只需将它们添加为现有Users表中的列?
您可以将所有通知列作为布尔值添加到用户表中,只需将活动的列切换为true? –
这对我来说是最简单的,但我只是想知道这是否是好的数据库设计... – Prabhu
是的,它是很好的数据库设计。简单明了都很好。困惑和困难是不好的。非常少见需要1对1表关系。 –