我有一个网站,其中将包含许多类型的业务,每个业务都有自己的层,但现在我有一个共同的实体,称为品牌。
我是否应该为每个业务品牌信息提供表格,例如:
DB Table
Business1_BrandsInfo
....................
DB Table
Business2_BrandsInfo
...etc ?
当然,我会有一个独立的业务实体,为每个品牌的信息,为每个业务。
或者我应该有一个公用表,并为每个企业添加一个id,以定义该品牌属于哪个企业。
这几个业务是不相关的,但我有每个品牌相同的典型信息,无论业务的类型,我有像5个不同类型的业务在我的网站。
发布于 2011-09-17 16:05:21
简单:如果每个表都有相同的属性,那么您可以将其放在一个表中,并通过TypeId列来识别它们。
如果您有一个以上的类型,那么您还需要一个以上的实体来满足这些表的内容。
用于识别的类型也将在类中。
请注意,如果明天你要添加一个特定的列到类型"1“,那么你将会有一个问题...
发布于 2011-09-17 16:15:30
我假设你所说的公共实体是指在你网站上的所有企业之间共享的对象。如果是这种情况,您的数据库模式应该为所有Brand反映一个表,但它应该有一个BusinessID列,该列具有指向其相关业务的外键。
[dbo].[Brands]
ID
BusinessID → [dbo].[Businesses].[ID]
...
[dbo].[Businesses]
ID ← [dbo].[Brands].[BusinessID]
...
您可以根据需要添加任意多的企业和品牌,但是以后如果您希望自定义属性因业务或品牌的不同而不同,则必须更改该模式,或者您必须为这些自定义字段设计一些其他方法。
发布于 2011-09-17 19:41:50
我会把它们分开。下面是两个选项。您不需要重复具有相同数据类型的表。
选项1
Brands
{
ID,
BusinessID, (FK to Business.ID)
Info1,
Info2
}
Business
{
ID,
BusinessName,
BusinessDesc,
OtherStuff1,
OtherStuff2
}
选项2
Brands
{
ID,
Info1,
Info2
}
Business
{
ID,
BusinessName,
BusinessDesc,
OtherStuff1,
OtherStuff2
}
BusinessToBrands
{
ID,
BrandsID(FK to Brands),
BusinessID(FK to Business)
}
https://stackoverflow.com/questions/7453365
复制相似问题