出于安全目的没有必要这样做,但有更好的方法来执行安全检查。想象一下,你创造了一把只能打开一扇门的钥匙。如果钥匙可以打开任何其他门,你应该敲响警报。本质上,您可以拥有“CitizenTable”和“VotingTable”。公民一号投票给存储在投票表中的候选人一号。如果公民一再次出现在投票表中,那么他们应该是一个警报。请注意,这是一对一的关系,因为我们不是指候选人字段,而是指投票表和公民表。
例子:
Citizen Table
id = 1, citizen_name = "EvryBod"
id = 2, citizen_name = "Lesly"
id = 3, citizen_name = "Wasserman"
Candidate Table
id = 1, citizen_id = 1, candidate_name = "Bern Nie"
id = 2, citizen_id = 2, candidate_name = "Bern Nie"
id = 3, citizen_id = 3, candidate_name = "Hill Arry"
那么,如果我们看到投票表是这样的:
Voting Table
id = 1, citizen_id = 1, candidate_name = "Bern Nie"
id = 2, citizen_id = 2, candidate_name = "Bern Nie"
id = 3, citizen_id = 3, candidate_name = "Hill Arry"
id = 4, citizen_id = 3, candidate_name = "Hill Arry"
id = 5, citizen_id = 3, candidate_name = "Hill Arry"
我们可以说,3号公民是一个骗子,骗了聂伯尔尼。只是一个例子。