vad*_*han 5 database-design data-modeling
我有一个客户和经理,两个独立的表.我的客户表有近一亿条记录,而经理表有100条记录.现在,我可以将客户映射到经理.规则如下
什么是最好的DB设计来解决这个问题?创建有效的ManagerCustomerMapping是一个想法.但我对它并不满意.因为这导致我一张很大的桌子.例如.如果Manager1和Manager2映射到所有客户,则此表具有2亿条记录.
pax*_*blo 10
尽管您有疑虑,但最好的数据库设计正是您所描述的.换句话说,有一个映射表ManagerCustomerMapping.
始终以3NF开始并修改当且仅当存在无法以其他方式解决的实际性能问题时.
如果您的业务规模与其看起来一样大(拥有1亿客户),则磁盘存储应该不是问题,并且映射表的正确索引应该可以缓解任何性能问题.
是的,如果每个客户都映射到两个不同的经理,那么您将拥有2亿条记录.那不是问题.在我工作的那种商店(DB2 on System z)上,这是关于一个中型表.
SQL的优点在于,如果DBMS性能不佳,您可以大部分更换DBMS.
两列ID列的两亿行对于普通数据库来说并不繁琐,这是最好的方法,特别是如果可能没有将客户分配给经理(反之亦然).尝试将客户ID放入经理表(或经理ID到客户表)中的任何其他解决方案都会浪费空间.