Empfohlene Kurse: MySQL-Tutorial
Einige Tabellen in MySQL müssen manchmal eindeutige Einschränkungen für einige Felder festlegen. Natürlich können Sie auch beurteilen vor dem Einfügen Gibt es eine Möglichkeit, Duplikate zu verhindern? Wenn Sie keinen zusätzlichen Code hinzufügen möchten, um eindeutige Einschränkungen für einige Felder flexibler zu implementieren, bietet MySQL zwei Methoden:
1.unique key
Tabelle xx ändern
eindeutigen Schlüssel no_account(no,collection_account) hinzufügen
2.einzigartiger Index
alter table xxadd unique no_account_index(no,collection_account);
Angenommen, es besteht die Anforderung, dass Benutzer Kommentare mögen. Das Datenbankdesign besteht aus drei Tabellen, Benutzertabelle t_user, Kommentartabelle t_comment, wie Tabelle t_praise, unter denen Likes Es gibt zwei Fremdschlüssel in der Tabelle, user_id und comment_id, die jeweils der Benutzer-ID der Benutzertabelle und der Kommentar-ID der Kommentartabelle zugeordnet sind. Dann wird festgelegt, dass ein Benutzer nur denselben Kommentar mögen kann Eine Möglichkeit, dies zu erreichen, besteht darin, vor dem Betreten der Tabelle zunächst abzufragen, ob es Like-Datensätze über user_id und comment_id gibt. Andernfalls werden die Likes zurückgegeben, die Ihnen bereits gefallen haben Auf diese Weise wird eine weitere Datenbankabfrageoperation durchgeführt. Eine bessere Implementierung besteht darin, die Benutzer-ID und die Kommentar-ID der Like-Tabelle zu ändern. Das heißt, diese beiden Spalten können nicht gleichzeitig identisch sein Wenn der Einfügevorgang bereits ausgeführt wurde, löst die Datenbank einen Verstoß gegen die Eindeutigkeitsschlüsselbeschränkung aus. Auf diese Weise können mehrere Probleme vermieden werden. Es wurde eine bestimmte Datenbankabfrageoperation ausgeführt Die eindeutigen Einschränkungen für mehrere Spalten lauten:
CREATE TABLE `t_praise` ( `id` int(12) unsigned NOT NULL AUTO_INCREMENT, `comment_id` int(12) NOT NULL, `user_id` int(12) NOT NULL, KEY `FK_t_praise_comment` (`comment_id`), KEY `FK_t_praise_user` (`user_id`), UNIQUE KEY `UK_praise` (`comment_id`,`user_id`) )
Das obige ist der detaillierte Inhalt vonWie stellt MySQL sicher, dass mehrere Felder eindeutig sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!