Bir tablo Pivot / haritalama yinelenen girişleri önlemek için bir yolu var mı?

1 Cevap php

MySQL için nispeten yeni ve hiçbir birincil anahtar ve bir çok-çok ilişkisi olan bir tablo Pivot / haritalama yinelenen girişleri önlemek mümkün olduğunu merak ediyordum. Basit bir örnek:

table 1
table1ID
field
field

table 2
table2ID
field
field

pivot table
table1ID
table2ID

Bir çok-çok ilişkisi [tek] birincil anahtar kullanılamaz anlamına gelir bu yana, eklenen yinelenen bir girişi (aynı table1ID, table2ID çifti) önlemek için bir öz bir şekilde (1-2 sorgu) var mı?

Edit: Açıkçası, bu sonuçlar üzerinden bir SELECT ve bir döngü içinde yapılabilir, ancak sadece o ekstra bir çağrıdır, ancak ekstra bir döngü var.

1 Cevap

Pivot tablo hem sütunları birincil anahtar olmalıdır:

PRIMARY KEY(table1ID, table2ID)

Bu aramalarını hızlandırır ve tekliği sağlar. Ayrıca diğer yönde bir UNIQUE anahtar ekleyebilirsiniz (table2ID, table1ID)