虽然我已经使用查询 SQL 数据库工作了一段时间,但在实际构建好表方面我还是个新手。我经常纠结的一件事是使用主键。
在我现在创建的用于记录某些警报设备上的错误的表中,我需要 5 列。和列唯一park
地code
标识一个站点(尽管该park
列是 atm. 未使用)。然后有一serial
列标识有问题的设备,以及一个error
包含错误代码的列。最后timestamp
,当记录错误时有一个 for。
每个站点都有几个不同的设备,一个设备可能会报告几个错误。更正错误后,将从表中删除该行。
因此,要唯一识别错误,我们需要检查park
、code
和。根据可能运行的查询,所有这些似乎都是索引的良好候选者。但是,将所有这些定义为组合主键对我来说似乎并不正确,它们毕竟几乎是表中的所有列!serial
fault
我曾多次为类似的问题而苦苦挣扎,但我从未觉得自己找到了一个好的解决方案。任何人都可以为这样的表提出一些好的做法,其中大多数(甚至所有)列都需要唯一标识一行?