-
答案 1:
怎么总有人问我数据库的问题...透露一个秘密,我在前公司的时候摘掉了所有的外键。业务约束通过中间层控制。面向Web的应用应该这样。一个DBA是否有足够的设计能力,就看他有多大的能力做反范式设计就可以了。不要问为什么。 -
答案 2:
外键在早期企业系统数据库设计里面比较多吧,本意是好了,帮程序员节省delete,update操作,实际上增加了潜规则,也增加了软件复杂度。互联网应用中,一般流量比较大,数据库当memecache用,大表+冗余字段,索引还建在外部用sphinx之类,基本上没有表和表的关联关系,外键无用 -
答案 3:
一个DBA是否有足够的设计能力,就看他有多大的能力做反范式设计就可以了。有这句,就够了! -
答案 4:
我想,这取决于数据库的用途、规模、架构,有外键,可以提高鲁棒性、健壮性,但是约束检验显然会拖慢速度。规模上说,数据量大的不适合用外键,小的可以用;用途上安全性、可靠性很重要的就要用外键,否则可以不用。具体情况具体解决了,因为也有矛盾的时候,数据量极大,但是又要求高可靠,例如银行金融、芯片生产等,仍然需要外键的存在。可以通过SAN+RAID等硬件提升解决矛盾。要求高并发的情况下,并不适合外键,有的连关系数据库都不用了,甚至数据库都不用了。这类问题真没有绝对的答案,什么情况下该怎样做,只能是多想,多做了,错的多了,就懂了。 -
答案 5:
数据库的诸多设计,帐号,权限,约束,触发器,都是为 C/S 结构设计的,是以 C 端不可信做为假设前提的。B/S 模式安全边界前移到 web 服务层,应用与数据库之间是可信的,应用自行完成这些功能更加灵活。所以能不用就不用。 -
答案 6:
NOSQL是王道啊王道。 自从用了mongodb,腰不酸头不痛了,吃嘛嘛香 -
答案 7:
互联网产品,只要是前台的,很少用外键。join操作是performance killer,不符合互联网程序高性能的要求 -
答案 8:
很少使用外键,因为外键虽然增加了一致性,但是会减弱性能。虽然现在因为磁盘廉价,所以大家都提倡反范式,但是不明白为什么要反,为什么不能问为什么?不搞清楚,跟着瞎反,到后面会发现数据库性能超级差。可以反范式,但是一定要明白为什么反,很多时候反是为了增加性能,假如不能增加性能,反而会减弱性能那为什么要反呢 -
答案 9:
不是很明白 弱弱的问问 外键在设计的时候设置为级联删除 这样在删除用户的时候可以删除用户的其它的操作。。。这样不是可以消除数据库的冗余吗 ? -
答案 10:
我基本上最后的库里面都是没有外键的 -
答案 11:
1st:遇到问题解决问题;2nd:避免遇到问题。条条框框不用刻意在意。孰能生巧嘛..... -
答案 12:
“一个DBA是否有足够的设计能力,就靠他有多大的能力做反范式设计就可以了。不要问为什么。”原来这句话出自这里啊,最近老有人跟我提... -
答案 13:
顶这句:“一个DBA是否有足够的设计能力,就靠他有多大的能力做反范式设计就可以了。不要问为什么。”顶大辉
大家设计数据库时使用外键吗?
2012-01-19 17:30:29 来源: 点击:
相关热词搜索:
上一篇:怎样模拟web service的返回?
下一篇:为什么代码都是用英文来写的,将来会有用中文写代码的那天吗?