数据库设计:可选,但如果提供了值,则必须是唯一的

Sta*_*bie 7 mysql database database-design

我的一张桌子上有一栏.它是可选的,因此可以留空.但是,如果为该列提供了值,则该值必须是唯一的.两个问题:

  1. 我如何在我的数据库设计中实现这一点(顺便说一句,我使用MySQL Workbench)
  2. 我的模型有潜在的问题吗?

Mus*_*sis 4

UNIQUE只需在列上使用索引即可。看:

http://dev.mysql.com/doc/refman/5.1/en/create-index.html

UNIQUE 索引创建一个约束,使得索引中的所有值都必须不同。如果您尝试添加键值与现有行匹配的新行,则会发生错误。对于所有引擎,UNIQUE 索引允许可以包含 NULL 的列有多个 NULL 值。如果为 UNIQUE 索引中的列指定前缀值,则列值在前缀内必须是唯一的。