我确信这可以回答,但不知道在哪里。
序:
我们的计费解决方案。应用程序设计非常简单,我们为企业创建Web商店并为企业主提供凭据。
企业主可以登录并创建相关产品,类别等。他们还可以注册他们可能想要用于计费的设备。
可以使用Web界面创建主实体,而在设备的本机应用程序上进行计费。
数据库表:
BUSINESS: id, name etc. - Business Info Table
CATEGORY: id, business_id, name etc. - Product Categories
PRODUCT: id, category_id, name etc. - Products
应用
基于Spring ROO的Web应用程序。 Spring MVC作为GUI技术
问题:
如前所述,所有者必须使用其凭据登录Web商店。因此,当他们开始创建实体时,webapp知道相关的业务ID,透明地存储所有类别,产品等。
在创建产品时,用户可以选择产品可能落入的类别。
问题是:将business_id存储在产品表中是个好主意吗?因为我们只是在生成产品GUI时填充与业务相关的类别。所有关联的表都可以是这种情况,其中这些规则在GUI中实施。
正如你们中的一些人可能知道的那样,ROO采用为每个CRUD操作创建服务的方法。因此,如果我们决定不将business_id与产品一起存储,那么如果有人试图调用不属于相关业务的类别ID的服务,则可以规避业务规则。或者保持数据库设计的完整性并专注于保护服务是一个好主意。
如果您有任何相关的利弊,请在此处发布。
提前致谢:)!!!!
答案 0 :(得分:0)
您面临的问题称为多租户。您可以在这里阅读更多关于选项的优缺点:
http://msdn.microsoft.com/en-us/library/aa479086.aspx
我更喜欢每个架构的租户方法。
您可以使用JBoss Hibernate的多租户功能自动执行此操作:
http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch16.html