有这样一个场景,我们的产品要提供给很多客户,所有客户使用同一个服务器,但每个客户的数据库要相对独立,怎样设计才好?
目前有两种方案:
我觉得2方案更独立美观,但考虑的客户可能会比较多,比如5000个客户就需要5000个database? 请大侠提供些意见和方案!
1 首先判断为每个客户创建一个Database的情况
..不是美观的问题,就说维护升级副本集之类的,维护起来多麻烦啊,再说这有啥美观的..mongodb是非关系型的数据库,在一个collection里多个不同的客户信息是正常的啊.
2 每个Collection中都带有一个(客户id)
这个我觉得是可取的,本来bson文件(collection)就支持collection嵌套collection,一个collection类似关系型数据库的表,那你嵌套一层,把里面的collection当做表,外面的那层不也是相当于是数据库层面了?而真正的mongosb数据库是在更外面包了一层
1.使用大量collections的话 有弊端,就是查数据的时候可能会很慢
2.独立建库,要看你们每个客户的数据性质,原则上不建议单独建库
不可取,总结完毕.
那就不要用MongoDB了呗。
本来人家的优势就是可以Document Style Free。
你这样做,不如用普通的RelationShip可能更加适合。