【发布时间】:2011-07-01 09:39:08
【问题描述】:
我有 2 个具有 1-M 关系的表:
TABLE foo
- foo_id (PK)
- foobar_id
- value
TABLE bar
- bar_id (PK)
- foo_id (FK to foo.foo_id)
- foobar_id
- value
我想确保foo.foobar_id 和foo.value 是唯一的,因此想将它们设为复合键。如果我这样做,那么我可能可以摆脱foo.foo_id。如果我这样做,我如何关联foo 和bar?
我还希望bar.foo_id 和bar.foobar_id 是唯一的,但是如果我删除foo.foo_id 会遇到问题。
关于如何建模的建议?
【问题讨论】:
-
只是让它们独一无二而不进行PK?
-
@zerkms - 如果我让两列都唯一,这是否意味着它们作为一对是唯一的,还是意味着单独的列必须是唯一的?
-
如果您创建涵盖两个字段的
UNIQUE索引 - 那么这对应该是唯一的。 -
谢谢。我没有意识到这一点。能否请您给出答案,以便我接受?
标签: mysql database database-design