【发布时间】:2014-04-05 21:05:18
【问题描述】:
我有一张桌子叫branch
看起来有点像。
+----------------+--------------+
| branch_id | branch_name |
+----------------+--------------+
| 1 | TestBranch1 |
| 2 | TestBranch2 |
+----------------+--------------+
我已将branch_id 设置为主键。
现在我的问题与名为item 的下一张表有关
看起来像这样。
+----------------+-----------+---------------------------+
| branch_id | item_id | item_name |
+----------------+-----------+---------------------------+
| 1 | 1 | Apple |
| 1 | 2 | Ball |
| 2 | 1 | Totally Difference Apple |
| 2 | 2 | Apple Apple 2 |
+----------------+-----------+---------------------------+
我想知道是否需要为item 表创建主键?
更新 他们不共享相同的项目。很抱歉造成混乱。一个分支可以创建另一个分支中不存在的产品。它们就像两个商店共享同一个数据库。
更新
抱歉信息不完整。
这些表实际上来自两个本地数据库......
我正在尝试创建一个可以单独存在但与另一个数据库混合时仍然没有问题的数据库。所以系统只会附加来自另一个分支的所有项目数据,而不会将它们混合在一起。在为他们的项目生成unique_id 时,这些分支不会考虑其他分支的item_id。但是,所有数据库可能共享相同的 branch 表作为参考。
提前谢谢你们。
【问题讨论】:
-
主键是 RDBMS 中表的先决条件。没有 PRIMARY KEY,它就不是一个真正的表!
-
@Strawberry 嗯,它仍然是一个表,但它不是一个关系!
标签: mysql sql database database-design primary-key