Ich fing an, eine Datenbank zu entwerfen, die Systemereignisse verfolgt, indem ich einigen on-line-Tutorien folge, und einige einfache Beispiele beginnen, indem sie automatisch inkrementierende IDs als Primärschlüssel zuweisen. Ich schaute auf meine Datenbank, ich brauche keine IDs. Von allen meinen Spalten sind der Zeitstempel und die Geräte-ID die zwei Spalten, die zusammen ein eindeutiges Ereignis identifizieren.Sollte ich meine zwei Spalten verwenden, die einen Datensatz eindeutig als Primärschlüssel identifizieren?
Was mein Programm gerade tut, ist einige Ereignisse aus dem Systemprotokoll in den letzten x Minuten zu ziehen und diese Ereignisse in die Datenbank einzufügen. Allerdings könnte ich zu sehr in die Vergangenheit gehen, dass sich die Ereignisse mit denen in der Datenbank überschneiden. Wie bereits erwähnt, sind Zeitstempel und Geräte-ID die zwei Felder, die ein Ereignis eindeutig identifizieren. Meine Frage ist, sollte ich diese beiden Felder als Primärschlüssel verwenden und ab sofort "Insert ignore
" verwenden, damit ich doppelte Datensätze vermeiden kann?
[Hier] (http://dba.stackexchange.com/questions/57548/how-to-set-up-multiple-fields-as-primary-key-in-mysql) ist, wie Sie dies tun können, und ich sehe nichts falsch mit Ihrem zusammengesetzten Primärschlüssel. –