Bool 字段作为唯一索引

1 mysql sql database-design foreign-keys

Bool 字段可以成为唯一索引并与另一个表的索引一起用于外键关系吗?

我不认为它可以成为主键,但唯一索引呢?每次我尝试将其转换为唯一索引时,它都会将其转换为 tinyint。

编辑

所以我有一个SQL关系问题。假设我有一个数据库,我想在其中保存有关个人的信息记录。现在我已经设置了一个表格来处理这些信息。好的到目前为止一切顺利。

通常可以在表中发现重复信息并将其删除。如果特定字段与另一行中的另一个字段具有相同的值,则记录被视为重复。示例:重复的电子邮件。

现在我想在数据库中创建另一个表来跟踪发现和删除的每个重复项。我对此的第一个想法是创建外键关系。所以我创建了一个dupes表,然后将其连接到我的persons表。这种关系是一个简单的外键到主键的关系,带有删除约束。

现在虽然这可能一开始有用,但问题出现了,dupes 表正在接收被删除的记录,即使它们没有被删除,因为它们是被欺骗的。这是一个问题,因为即使我决定从persons表中删除一个人只是因为我不喜欢他们,他们还是会存储在dupes表中。

然后我想,为什么不在 people 表中创建一个处置字段并将其作为唯一键或主键连接到我的 dupes 表的索引外键。那么问题是一个唯一的键必须有一个唯一的值,所以欺骗的多重处置或者我不喜欢你不会工作。另一种选择是使处置字段成为主键。不过也有同样的问题。

这个问题的正确关系是什么?

TGl*_*zer 5

本质上,sql 中的布尔值(或 mssql 中的位)是一个非常短的整数。所以基本上没有理由不允许它作为外键。但从设计的角度来看,它没有任何意义。