我的一个客户端有一个电子商务网站,其中包含一个数据库服务器。
现在我们要将POS Logic(通过销售助理销售)与电子商务网站集成。
在他提到的原始要求中,使用单独的物理数据库服务器进行POS相关的销售/退货交易,以现金登记POS(和销售助理)的具体报告。
他希望业务逻辑在现有的电子商务服务器数据库上维护相同的交易。为什么?他回答如下:
POS服务器将跟踪商店中进行的所有销售交易。这样做的一些原因是:
以下数据库表存储销售:
sales_transactions_journal
sales_transactions_journal_lines
sales_transactions_journal_sales_associate_chain
我的感觉是,执行相同的数据库事务两次,每个单独的物理数据库服务器都不是一个好主意。我想反对这种设计,因为我觉得:
如果我们为每个数据库服务器运行两次相同的查询,那么我们将需要编写容错和同步代码。
客户+商店(例如,哪个客户更喜欢从哪个商店购物)特定报告将需要存储客户信息与特定于商店的服务器以回答上述查询。因此,我们不仅要复制销售交易,还要复制POS上销售的客户信息。
我希望您添加更多可靠的具体点,以便我可以说服我的项目经理和客户,这不是一个实现报告+负载平衡的好方法,而是一些其他技术,如Data Replicatoin,Sharding等将是更好。