我的数据库设计不正确,我应该在开发过程中修复它吗?
“user”表假设与“userprofile”表
具有1.1关系但是“user”表的实际设计与“userprofile”表有1. *的关系。
一切正常!但是它应该固定吗?
答案 0 :(得分:3)
做一件事
User Table
Userid(p)
UserName
othercol..
UserProfile
id(p)
UserId(f) - and unique
othercol..
希望通过这种方式你可以轻松修复isse
答案 1 :(得分:2)
使user_profile表中的user_id唯一且固定。
答案 2 :(得分:2)
如果它是1:1关系,并且您经常将“user”表和“userprofile”中的记录一起带回来,那么您可以考虑将它们合并到一个表中。
答案 3 :(得分:1)
是的,使用FK字段上的唯一索引修复此问题。您现在需要修复它的原因是,如果未使用不允许您不需要的行为的控件正确设置数据库,则无法控制人们在一段时间内插入数据的严重程度。
第一次将重复记录插入子表时,可能会破坏大量代码。没有唯一索引,插入第二条记录的可能性非常高。你可以说,你将在应用程序级别控制它,但这是一个糟糕的选择,因为不能保证其他应用程序,批量插入等不会发生绕过应用程序。在数据库设计中尽快将事情放在正确的位置至关重要。当数据库中有大量记录时,很难修复糟糕的设计。
答案 4 :(得分:0)
@pranay
User Table
Userid(p)
UserName
othercol..
UserProfile
id(p)
UserId(f) - and unique
othercol..
这通常是你怎么做的(上图)?或者你这样做(下面)?
User Table
Userid(p)
UserName
othercol..
UserProfile
id(p) <--- userid
othercol..