【发布时间】:2015-04-16 20:19:37
【问题描述】:
我要设计一个商家应用程序。商家在系统注册后,可以添加商品、折扣、价格等信息,并有智能手机应用程序访问每个商家及其商品。
所以关于数据库(希望使用 MySQL)设计我有三个选择。
- 使用一个数据库并使用单表结构来维护目录,其中包含名为 Mercer_id 的列。
- 使用一个数据库并为每个商家创建相同的表结构,表名中具有唯一的前缀。
- 当每个商家注册到系统时,使用具有表结构的单独数据库。在这种情况下,将维护一个主数据库来保存商家的数据库信息。
我们正在开发一个单一的应用程序来满足所有商家和客户的要求,并且会有很多商家和客户与系统进行交互。
目前我们正计划使用 Spring MVC 和 Spring Data JPA。
所以我很难在可扩展性和可维护性等方面做出正确的决定。非常感谢您的专业意见/建议。
【问题讨论】:
-
如果应用程序只有 CRUD 操作和最少的关系层,那么最好使用 NOSQL db 之类的 mongodb,易于与 spring-data 集成,如果移动应用程序是混合的,那么 json 层数据会更多也很有效。
-
对于多租户系统,我会排除 2) ... 如果 1) 或 3) 是正确的选择,取决于此处未提及的要求:您打算扩展还是允许您的商家拍摄他们的数据的快照?您是否计划允许为演示/测试目的创建沙盒实例?
-
让我们坚持使用 MySQL,因为问题不在于使用关系或无 sql。
-
一些预期的数字会有所帮助。有多少商户? 10k..10M?有多少产品?
-
产品数量不限。
标签: java mysql database spring jpa