首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我有一个公共实体时,数据库、DataAccess和业务层设计

当我有一个公共实体时,数据库、DataAccess和业务层设计
EN

Stack Overflow用户
提问于 2011-09-17 15:56:15
回答 3查看 99关注 0票数 0

我有一个网站,其中将包含许多类型的业务,每个业务都有自己的层,但现在我有一个共同的实体,称为品牌。

我是否应该为每个业务品牌信息提供表格,例如:

代码语言:javascript
运行
复制
DB Table
Business1_BrandsInfo
....................

DB Table
Business2_BrandsInfo
...etc ?

当然,我会有一个独立的业务实体,为每个品牌的信息,为每个业务。

或者我应该有一个公用表,并为每个企业添加一个id,以定义该品牌属于哪个企业。

这几个业务是不相关的,但我有每个品牌相同的典型信息,无论业务的类型,我有像5个不同类型的业务在我的网站。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-17 16:05:21

简单:如果每个表都有相同的属性,那么您可以将其放在一个表中,并通过TypeId列来识别它们。

如果您有一个以上的类型,那么您还需要一个以上的实体来满足这些表的内容。

用于识别的类型也将在类中。

请注意,如果明天你要添加一个特定的列到类型"1“,那么你将会有一个问题...

票数 0
EN

Stack Overflow用户

发布于 2011-09-17 16:15:30

我假设你所说的公共实体是指在你网站上的所有企业之间共享的对象。如果是这种情况,您的数据库模式应该为所有Brand反映一个表,但它应该有一个BusinessID列,该列具有指向其相关业务的外键。

代码语言:javascript
运行
复制
[dbo].[Brands]
ID
BusinessID → [dbo].[Businesses].[ID]
...

[dbo].[Businesses]
ID ← [dbo].[Brands].[BusinessID]
...

您可以根据需要添加任意多的企业和品牌,但是以后如果您希望自定义属性因业务或品牌的不同而不同,则必须更改该模式,或者您必须为这些自定义字段设计一些其他方法。

票数 0
EN

Stack Overflow用户

发布于 2011-09-17 19:41:50

我会把它们分开。下面是两个选项。您不需要重复具有相同数据类型的表。

选项1

代码语言:javascript
运行
复制
Brands
{
  ID,
  BusinessID,   (FK to Business.ID)
  Info1,
  Info2
}

Business
{
  ID,
  BusinessName,
  BusinessDesc,
  OtherStuff1,
  OtherStuff2
}

选项2

代码语言:javascript
运行
复制
Brands
{
  ID,
  Info1,
  Info2
}

Business
{
  ID,
  BusinessName,
  BusinessDesc,
  OtherStuff1,
  OtherStuff2
}

BusinessToBrands
{
  ID,
  BrandsID(FK to Brands),
  BusinessID(FK to Business)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7453365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档