【发布时间】:2008-10-30 12:44:30
【问题描述】:
我是http://highscalability.com/ 的忠实粉丝,并且一直在研究我当前的开发,以沿着功能边界分解我的应用程序,以此作为能够横向扩展服务器端,特别是数据库层的途径。这涉及将应用程序的不同功能组件(我们有几个客户可以使用的单独模块)实现为服务器上自己的独立应用程序,与服务器联系的客户端知道它需要为不同的数据联系的不同服务,因此统一的视图呈现给用户。 当不同组件中的数据之间存在链接时,问题就出现了,即一个组件保存所有用户数据,但另一个组件需要引用用户作为某条数据的所有者。我目前通过保存链接每一侧的主键信息来做到这一点(就像它们都住在一个数据库中一样),但是这个链接表需要存在于两个组件中以允许在任一方向,即“获取特定用户拥有的东西”和“获取该特定事物的所有者”都将使用不同的组件。对此的替代方法是将链接数据仅存储在一个组件中,但反向查找将需要 2 次调用,而不仅仅是 1 次。
我的问题是,这些链接表的重复是我应该避免的某种代码异味,还是当您按照这样的功能线拆分应用程序时,事情就是这样?
【问题讨论】:
标签: design-patterns scalability