2010-11-04 56 views
0

商店表的建议: 编辑关于合适的数据库设计和实施与C#

:来存储不同的商店

StoreId  Name  PlaceCode 
-------- -------- --------  
1   Addidas  AB1   
2   Nike  KS3   
3   Puma  LS6   
4   Nike  AS2   
5   Nike  WR4 

区表信息

AreaId Area 
------ ------- 
1  DownTown 
2  UpTwon 

StoresArea表的表

StoreId AreaId 
------- ------- 
1   1 
2   2 
3   2 
4   1 
5   2 

例如,耐克公司的店铺不止一家分店,因此我的想法是拥有比名称属性“耐克”更多的记录,但其他属性将包含有关分店的信息。

我用StoresArea Table创建了一个多对多的关系,但我认为这可以通过一对多的关系来实现...而且它很混乱,所以我希望有一个好的建议,所以它可以帮助我遵循良好的做法!

我创建了一个名为store的类来保存关于每个store的信息..但是我想添加一个额外的变量,我认为它会是一个数组,这个变量将保存给定商店的所有分支的信息。

我觉得这个信息将是:
1 - 分支的PlaceCode
2 - ID,这样我可以使用查询字符串来访问所有其他部门提供的网址STOREID =标识
3 - 分支的面积
?直接点,我想要任何特定商店的详细页面有一个名为branches的字段,它将显示分支区域+所有其他可用分支的PlaceCode。例如“分支机构:市中心:AS2”,市区单词将可点击链接到分支机构!

我知道这还不够清楚!但我希望你能得到它 当然,你可以询问任何进一步的细节或问题使图片更清晰!

回答

0

Kashef,

每个商店只在一个区域,是否正确?如果是这样,请创建一个具有与区域表的外键关系的存储表(即存储表中的RegionID)。

如果不同的商店是同一品牌/公司的一部分,请创建一个公司表并为商店表设置一个foriegn密钥。

的设置看起来像

区域表--->店铺< ----公司

是,这种情况你有吗?如果是这样,让我知道,我会谈谈这些课程。

埃里克

编辑基于评论

在这种情况下,你真正需要的地区和存储之间的许多一对多的关系,具有鲜​​明的主键(即不RegionID + STOREID)。

区域表---> RegionTable < ---房屋< ----公司

这将让你有多个存储在一个单一的区域。但是,它也允许单个商店的多个区域!您可以通过约束条件来解决此问题,以确保每个商店只有一个区域。

这是否有意义?

埃里克

+0

其实一个区域或一个区域可以有一个以上的商店为同一品牌,具有不同的地址 耐克可以有两个分支在市中心!所以他们的独特之处在于显示他们的地址或地点代码,就像在“分支机构:DownTown,AS2 - DownTown,SD1” – lKashef 2010-11-04 02:29:12

+0

这些实际上是有意义的,并且这个想法已经开始出现了......但我可以还是想象一下,我将如何显示特定商店的所有分支(PS:商店代码扮演店铺地址的一部分,所以这就是每个商店的独特之处),请参阅我编辑第三个表以使其具有2耐克在同一地区的商店展示了这里的多对多关系。 – lKashef 2010-11-05 11:15:08

0

作为一般规则,我建议使用商业语言来定义软件的概念。所以,我会用“分支”一词来定义人们可以购买东西的具体物理位置。我会把这个共享的商业语言定义为项目的第一步。

这也有助于以半正式的语法使用这种商业语言来理解概念。我认为你说以下。

  • 有许多公司(耐克,阿迪达斯等)
  • 每家公司都有一个或多个分支。
  • 分行有一个,只有一个区号。
  • 一个区域代码可能有0个或更多分支。

在这种情况下,该模型是Erick T建议的第一个解决方案(请原谅我不使用相同的名称)。

具体做法是:

表业公司

COMPANY_ID  NAME 
--------------------- 
1    Nike 
2    Adidas 
3    Reebok 

表区域

AreaId Area 
------ ------- 
1  DownTown 
2  UpTown 

查表

BRANCH_ID  COMPANY_ID  AREA_ID  ADDRESS 
------------------------------------------------------- 
1    1    1    The Mall 
2    1    2    High Street 
3    2    1    Near MacDonalds 
4    3    2    Out of town 

找到其他商店为公司给定的分支,你只需要在分支ID:

select * 
from branch 
where company_id = 
(select company_id from branch where branch_id = %current_branch_id%