Heim > Datenbank > MySQL-Tutorial > Wie stellt MySQL sicher, dass mehrere Felder eindeutig sind?

Wie stellt MySQL sicher, dass mehrere Felder eindeutig sind?

(*-*)浩
Freigeben: 2020-09-09 11:09:52
Original
5149 Leute haben es durchsucht

Wie stellt MySQL sicher, dass mehrere Felder eindeutig sind?

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`)

)
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage