1

我敢肯定这可以回答,但不完全知道在哪里。

前言:

我们的解决方案是计费解决方案。应用程序设计非常简单,我们为企业创建网络商店并向企业主提供凭据。

企业主可以登录并创建相关产品、类别等。他们还可以注册他们可能想要用于计费的设备。

可以使用 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 技术

问题:

如前所述,所有者必须使用他们的凭据登录网络商店。因此,当他们开始创建实体时,webapp 知道相关的业务 ID,该 ID 透明地存储在所有类别、产品等中。

在创建产品时,用户可以选择产品可能属于的类别。

问题是:将 business_id 存储在产品表中是个好主意吗?因为我们只会在生成产品 GUI 时填充与业务相关的类别。对于在 GUI 中强制执行此类规则的所有关联表,情况也是如此。

有些人可能知道,ROO 采用为每个 CRUD 操作创建服务的方法。因此,如果我们决定不将 business_id 与产品一起存储,那么如果有人尝试使用不属于相关业务的类别 id 调用服务,则可以规避业务规则。或者,保持数据库设计不变并专注于保护服务是一个好主意。

如果您有任何相关的利弊,也请在此处发布。

提前致谢 :)!!!!

4

1 回答 1

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

于 2013-04-17T19:48:52.113 回答