我总是使用以下表格结构来配置数据:
可能的行如:
虽然这很有效,但我认为配置相关数据的一般用途不符合:
克服上述内容的最佳实践或方法是什么,创建一个仍然可以编入索引并具有唯一“名称”值的表,但显然仍然考虑到其他表可能与某些键/值之间存在关系。上表?
答案 0 :(得分:1)
您可以为name
字段添加唯一键。这将阻止表中的双重名称。
ALTER IGNORE TABLE tablename ADD UNIQUE (name);
提示:来自manual:
IGNORE是标准SQL的MySQL扩展。它控制ALTER的方式 如果新表中的唯一键上有重复项,则表可用 如果启用严格模式时发生警告。如果不是IGNORE 如果指定,则复制将被中止并在重复键错误时回滚 发生。如果指定了IGNORE,则只使用行的一行 复制一个唯一的密钥。其他冲突的行将被删除。 不正确的值被截断为最接近的匹配可接受 值。