【发布时间】:2015-05-31 06:59:06
【问题描述】:
我需要记录他们所在城市的各种业务及其在每个城市的分支机构。每个企业可能在不同的城市,每个城市可能有不同的分支机构。
以银行为例。它可能在A市和B市,A市可能有两个分支机构,而B市只有一个。
我想分支表应该有连接表的两个主键的 branchid 和外键。通过这种方式,我可以确保没有一个分支机构与多个城市和企业的组合相关联。
Business City
\ /
BusinessID CityID <<join table has primary keys of Business and City tables
|
Branch
BranchID BusinessID CityID
样本数据
Business Table
1
2
3
City Table
A
B
C
Join Table
Business_City
1 A
1 B
2 A
3 C
Branch Table
Business City Branch
1 A I1
1 A I2
1 B I6
2 A I5
3 C I3
如您所见,企业 1 和企业 2 都在 A 市。企业 1 在 A 市有两个分店,而企业 2 只有一个分店,依此类推。
我应该如何将分支机构映射到企业和城市?
【问题讨论】:
-
不应该把机构和课程联系起来吗?
-
@MadProgrammer 不,还有其他一些限制使它像这样。此外,机构是举办课程的地方,每个课程和学生的组合可以有多个机构。
-
您确定需要 Business_city 的连接表吗?您可以从 Branch Table 中获取相同的数据.. 不需要 business_city 表..
-
@user1354678 我需要这个想象我只需要知道哪些企业在纽约市。
-
这就是为什么我说只需要分支表,因为您可以从分支表中获取相同的信息。对于这种情况 -
need to know which businesses are in NYC only,您可以使用此查询select business from branchTable where city='?' group by business
标签: java mysql hibernate hibernate-mapping