我被其他人指出,以下数据库设计存在严重问题,有谁可以告诉我为什么?
指出这个问题的人说我应该将所有数据合并到一个表中,并使用FK来区分它们,但我有以下声明:
设计这样的数据库是不好的做法吗?为什么?谢谢.
因为它不是很易维护.
1)向数据库添加数据永远不需要修改结构.在您的模型中,如果您需要添加其他人,则需要一个新表(或两个).你可能认为你不需要这样做,但请相信我.你会.
因此,假设您要为应用程序添加功能以将新用户添加到数据库.使用此结构,您必须为最终用户提供创建新表的权限,这会产生安全问题.
2)它违反了DRY原则.也就是说,您正在创建相同表结构的多个副本.这使得维护成为一种痛苦.
3)查询多个用户将不必要地复杂化.没有充分的理由将每个用户分成一个单独的表,除了对必须针对此DB模型编写查询的人进行仇杀.
4)如果你将它分成多个表以提高性能,因为每个用户都有很多行,你就是在重新发明轮子.您正在使用的RDBMS无疑具有索引功能,允许它有效地查询大型表.你的本土黑客不会胜过平台处理大数据的方法.
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |