MySQL Case Insensitive aber Accent Sensitive UTF8 Unique Key

Ich weiß, dass es viele ähnliche Fragen zu SF gibt, aber ich denke, meine sind anders genug, um eine neue Frage zu rechtfertigen. Ich habe eine Tabelle, die eine einzelne Spalte als utf8 mit utf8_unicode_ci hat. In dieser Spalte befindet sich auch ein eindeutiger Schlüssel sowie eine weitere Spalte, die einen Sprachcode kennzeichnet. Die Daten in der Spalte befinden sich in vielen verschiedenen Skripten (Latein mit verschiedenen Akzenten, Chinesisch und Russisch unter anderem).

Das Problem ist, dass ich manchmal zwei Wörter mit unterschiedlichen Bedeutungen eingeben möchte, die sich nur durch ein diakritisches Zeichen unterscheiden (d. H. Spanisch ano vs año). Da bei utf8_unicode_ci die Groß- und Kleinschreibung und der Akzent nicht beachtet werden, werden diese für gleich gehalten und ich gebe nur einen ein. Das ist Scheiße. Im Idealfall würde ich einfach die gesamte Spalte auf eine Kollatierung umstellen, bei der zwischen Groß- und Kleinschreibung unterschieden wird, bei der jedoch der Akzent beachtet wird. Diese Kollatierung scheint jedoch nicht zu existieren. Diese Spalte wird von vielen verschiedenen Themen verwendet. Daher würde ich die Standardkollatierung der Spalte lieber nicht in utf8_bin ändern, aus Angst, die Groß- und Kleinschreibung durcheinander zu bringen.

Alles in allem benötige ich also eine Lösung, die die Groß- und Kleinschreibung in den vielen vorhandenen Abfragen, die diese Spalte betreffen, nicht beeinträchtigt. Ich möchte jedoch Wörter hinzufügen, die sich nur durch ein diakritisches Zeichen unterscheiden. Ideen? Ich werde nur die Einschränkung für den eindeutigen Schlüssel auf utf8_bin setzen, wenn ich muss, aber ich möchte lieber nicht, da ich niemals zwei Dinge in der Tabelle haben möchte, die sich nur durch den Fall unterscheiden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage