防止MySQL中的重复记录

防止MySQL中的重复记录,mysql,entity-framework,duplicate-removal,duplicate-data,Mysql,Entity Framework,Duplicate Removal,Duplicate Data,我目前正在研究一种进化算法,该算法将尝试为给定问题找到参数的最佳配置 我试图在一个MySQL表中创建记录,该表将存储一个配置,其中每个参数将表示为一个表列。如果已尝试配置,则我希望防止重复配置 是否有在数据库/ORM级别执行此操作的机制,或者我应该创建编程逻辑以防止重复条目 在数据库/ORM级别有这样做的机制吗 是,在创建表时,将配置列声明或定义为主键或唯一键,以避免重复 我提到了configurationcolumn,因为我不确定您的表结构,但如果它涉及多个列,那么您可以始终将其设置为复合键。

我目前正在研究一种进化算法,该算法将尝试为给定问题找到参数的最佳配置

我试图在一个MySQL表中创建记录,该表将存储一个配置,其中每个参数将表示为一个表列。如果已尝试配置,则我希望防止重复配置

是否有在数据库/ORM级别执行此操作的机制,或者我应该创建编程逻辑以防止重复条目

在数据库/ORM级别有这样做的机制吗

是,在创建表时,将
配置
列声明或定义为
主键
唯一键
,以避免重复

我提到了
configuration
column,因为我不确定您的表结构,但如果它涉及多个列,那么您可以始终将其设置为复合键。为什么您担心密钥查找。如果您使用适当的索引正确地设计了表,那么您就不必担心这一点

假设您的
col1、col2、col3、col4
是配置的一部分,您希望它们是唯一的。然后将它们作为复合主键

primary key (col1, col2, col3, col4)

在表中的相关字段上使用唯一键?唯一性将是所有列的组合。我认为主键是不够的。在确定是否已尝试配置时,必须对所有列进行查找。这是唯一键的作用<代码>更改表foo以添加唯一键(字段1、字段2、…、字段n)。键中可以有多个字段,毕竟…
N
可能很大。拉胡尔,我不认为这是对的唯一性将是所有栏目的组合。主键是不够的,因为在确定是否已尝试配置时,必须对所有列进行查找。@PrimeByDesign,我提到了
配置
列,因为我不确定您的表结构,但如果它涉及多个列,则可以始终将其设为复合键。为什么您担心密钥查找。如果您使用适当的索引正确地设计表,那么您就不必担心这一点。那么,如何防止我使用不同的主键存储重复的配置呢@Rahul@PrimeByDesign,根据DBMS的概念,每个表只能有一个PK,所以这是不可能的。是吗?@PrimeByDesign,你弄糊涂了。这就是我所说的,将所有涉及的列定义为复合主键,DB引擎将确保它们的唯一性。考虑阅读主键以获取更多信息。