Database design 数据库:外键强制
我相信这是可以回答的,但不知道具体在哪里 前言: 我们的是计费解决方案。应用程序设计非常简单,我们为企业创建web应用商店,并向企业所有者提供凭据 企业主可以登录并创建相关产品、类别等。他们还可以注册他们可能想要用于计费的设备 主实体可以使用web界面创建,而计费则在设备的本机应用程序上进行 数据库表:Database design 数据库:外键强制,database-design,spring-roo,foreign-key-relationship,Database Design,Spring Roo,Foreign Key Relationship,我相信这是可以回答的,但不知道具体在哪里 前言: 我们的是计费解决方案。应用程序设计非常简单,我们为企业创建web应用商店,并向企业所有者提供凭据 企业主可以登录并创建相关产品、类别等。他们还可以注册他们可能想要用于计费的设备 主实体可以使用web界面创建,而计费则在设备的本机应用程序上进行 数据库表: BUSINESS: id, name etc. - Business Info Table CATEGORY: id, business_id, name etc. - Product Cate
BUSINESS: id, name etc. - Business Info Table
CATEGORY: id, business_id, name etc. - Product Categories
PRODUCT: id, category_id, name etc. - Products
应用程序:
BUSINESS: id, name etc. - Business Info Table
CATEGORY: id, business_id, name etc. - Product Categories
PRODUCT: id, category_id, name etc. - Products
基于SpringRoo的web应用程序。springmvc作为GUI技术
问题:
BUSINESS: id, name etc. - Business Info Table
CATEGORY: id, business_id, name etc. - Product Categories
PRODUCT: id, category_id, name etc. - Products
如前所述,所有者必须使用其凭据登录到web应用商店。因此,当他们开始创建实体时,webapp知道相关的业务id,该id被透明地存储在所有类别、产品等中
在创建产品时,用户可以选择产品可能属于的类别
问题是:将业务id存储在产品表中是一个好主意吗?因为我们只在生成产品GUI时填充与业务相关的类别。在GUI中强制执行此类规则的所有关联表的情况也可能如此
正如你们中的一些人可能知道的,ROO采用为每个CRUD操作创建服务的方法。因此,如果我们决定不将业务id与产品一起存储,那么如果有人试图使用不属于相关业务的类别id调用服务,则可以绕过业务规则。或者,让数据库设计保持原样,集中精力保护服务是一个好主意
如果你有任何相关的优点和缺点,请张贴在这里了
提前感谢:) 您面临的问题称为多租户。您可以在此处阅读更多有关选项利弊的信息: 我更喜欢按模式租户的方法 您可以使用JBoss Hibernate的多租户功能自动执行此操作: