Frage

Es gibt die Standard-A-Z, a-z Zeichen, aber es gibt auch Bindestriche em Striche, Zitate, etc.

Darüber hinaus gibt es alle internationalen Zeichen, wie Umlaute, etc.

Also, für ein englische-basiertes System, was ist der komplette Satz? Was ist Sets für andere Sprachen? Was ist UTF8, UTF16, etc?

Bonus Frage: Wie viele Namensfelder benötigt werden, und was sind ihre maximalen Längen

?

EDIT: diejenigen, die es als Teil des Kontextes, und diejenigen, die es aus strukturellen Gründen Es gibt auf jeden Fall zwei verschiedene Arten von Charakteren in Den Namen des beteiligten. Ich will nicht begrenzen oder den Kontext Zeichen stören, aber ich brauche die strukturell diejenigen zu beschäftigen.

Zum Beispiel hatte ich einen Namen kam, dass durch einen Gedankenstrich getrennt wurde, aber es war schwer, dass von den Minus-Zeichen zu unterscheiden. Um das System einfacher für die Suche zu machen, möchte ich alle fünf verschiedene Arten von Strichen nehmen, und ordnet sie auf einen einzigartigen Charakter (minus), diese Art der Sucher nicht kennen muss, um spezifisch, welches Symbol wurde ursprünglich eingegeben.

Das Problem besteht für Striche, wahrscheinlich auch zitiert, sondern auch, wie viele andere Symbole?

War es hilfreich?

Lösung

Es gibt gute Artikel vom W3C genannt Personennamen auf der ganzen Welt das erklärt die Probleme (und mögliche Lösungen) ziemlich gut (es war ursprünglich eine zweiteilige Blog-Post von Richard Ishida: Teil 1 und Teil 2 )

Persönlich würde ich sagen: jedes druckbare Unicode-Zeichen unterstützen und sicher liefern nur ein einziges Feld „name“ zu sein, der den vollständigen, formatiert Namen enthält. Auf diese Weise Sie speichern können so ziemlich jede Form von Namen. Sie könnten einen besser strukturierten Speicher benötigen, aber dann nicht erwarten, jede einzelne Kombination in strukturierter Form speichern zu können, da es einfach zu viele unterschiedlichen ist.

Andere Tipps

würdige Charaktere, die in dem Namen einer Person erscheinen könnten, sind der falsche Weg zu gehen, wenn Sie mich fragen. Sicher, [A-Za-z] ist ein fairer Ausgangspunkt, aber, wie Sie gesagt hat, Sie bekommen Probleme mit „europäischen“ Namen. So ordnen Sie alle Umlaute, Zirkumflexe und solche. Was über chinesische Namen? Japanisch? Indisch? Hebräisch? Sie sind ein Kampf gegen Windkraftanlagen eintritt.

Wenn Sie muss unbedingt die Gültigkeit des Namens jemand, würde ich vorschlagen, eine bescheidene schwarze Liste bestimmter Zeichen zu tun. Zahnspange, mathematische Zeichen, einige Interpunktion und so könnten sicher sein, zu ignorieren. Aber ich würde vorsichtig sein, wenn ich du wäre.

Es könnte sein, am besten, nur zu akzeptieren, was kommt. UTF-16 sollte heutigen Overkill Zeichensatz sein, dass ausreichend sein sollte für einige Jahre zu kommen.

Edit: Was Ihre Frage nach Namen Länge und Menge von Namen. Wenn Sie wirklich die Leute wollen ihre wirklichen und vollständigen Namen schreiben, ich denke, die einzige narrensichere Antwort auf beide Fragen wäre „unendlich“. Nicht in der Lage, alle realen Beispiele für die Menschen zücken, aber sicher gibt es analoge Beispiele für die Menschen als der einheimischer Name für die Stadt Bangkok .

Ich glaube nicht, dass es eine definitive Antwort. Schließlich haben einige Leute die Namen, die nicht einmal in ausgedrückt werden kann UTF-16 ...

Prince Symbol

Es gibt einige seltsam Leute da draußen, die ihren Kindern die verrücktesten Namen geben werden, auch in seltsamer Interpunktion setzen, Akzente, die in ihrer eigenen Sprache nicht existieren, etc.

Sie können jedoch beliebige Einschränkungen auf Ihrer Datenbank platzieren. Wenn Sie möchten, können Sie auf 7-Bit-ASCII-Namen bestehen. Es ist etwas unhöflich Benutzer, aber sie werden damit leben. Es macht sicherlich einfacher zu suchen.

ist mein Kollege Tochter namens Amélie. Aber auch einige (nicht alle!) Offizielle britische Regierung Internetseite ( „Bitte geben Sie den Namen genau so, wie auf der Geburtsurkunde gezeigt“) wird die Unicode nicht akzeptieren, so muss er nutzen ‚Amelie‘ statt.

Jedes Zeichen, das durch ein beliebiges Vielfaches von acht Bits (größer als Null) ist ein mögliches Zeichen für den Namen einer Person dargestellt werden kann. Längen beiden Namen und Kodierungen sind willkürlich, so dass keine obere Grenze sollte in Betracht gezogen werden.

So stellen Sie sicher, dass Sie Ihre Datenbank sanieren Eingänge so wenig Bobby-Tropfen-Tabellen nicht ya nicht erhalten.

Bei der Ausgabe von Namensfeldern, die FALSCH Antwort Vorname, Initiale, Nachname usw. aus vielen Gründen.

  1. Viele Menschen sind in ihren mittleren Namen bekannt und formal einen ersten Anfang, zweiten Vornamen, Nachname-Format verwenden.

  2. In einigen Kulturen, der Name ist der erste Name und der Vorname ist der Nachname.

  3. Mehrere erste und / oder mittlere Vornamen werden immer häufiger. Wie @Dour hohen Bogen weist darauf hin, ist das andere Extrem Menschen mit nur einem Wort in ihrem Namen.

In einer objektorientierten Datenbank, würden Sie ein Name-Objekt mit Methoden speichern einen Verzeichnis-Stil oder signatur Artnamen zurückzukehren; und der Sicherungsspeicher würde enthält alle Daten, war notwendig, um diese Methoden zu unterstützen.

Ich habe noch nicht ein relationales Datenbankmodell zu sehen, die für Verzeichnis-Stil und signaturStilNamen.

auf dem Modell von zwei Zeichenfolge variabler Länge verbessert

Es hängt wirklich davon ab, was der App soll für verwendet werden.

Sicher, in der Theorie toll es ist, wenn Sie jedes Skript auf Gottes grüne Erde erlauben verwendet werden, aber wenn die DB auch von Hilfspersonal verwendet wird, werden sie in der Lage sein, Namen zu handhaben in Japanisch, Hebräisch und Thai-Schrift? Können Sie Drucker, ist, wenn es verwendet Briefmarkenetiketten drucken?

Sie könnten ein zusätzliches Feld „Latin Transkription“, fügen aber es ist IMO wirklich OK, um ISO-8859-1 Zeichen zu beschränken - Menschen, die lateinischen Zeichen jetzt nicht zu verwenden sind verwenden, indem so verwendet, um eine Transkription zu haben, dass sie es nicht mehr Sinn, es sei denn, sie Hardcore-Nationalisten sind.

Ich mache Software für Fahrschulen in den USA, so zu mir, was am wichtigsten ist, was der Staat DMV als Eigenname Führerschein eines Fahrers übernehmen. In meinem Fall würde es zu Problemen führen Namen darüber hinaus zu ermöglichen, was die DMV erlaubt, auch wenn solche Namen legal waren, weil der gleiche Name später für einen Führerschein verwendet werden muss.

Von Stackoverflow, ich hatte noch nicht die Antwort bestätigt die ich brauchte. Und ich weiß zufällig, dass in meinem Zustand (Kalifornien) sie in COBOL AS400 mit Software wahrscheinlich geschrieben verwenden, und zum besten meines Wissens, nur diejenigen einen 8-Bit-Zeichensatz unterstützen. (Ist es EBCDIC?) Wie auch immer ... Ugh.

Also, ich die California DMV genannt ... Sicher genug, erlaubt ihr System von A-Z und Räumen und absolut nichts anderes. Nicht einmal Bindestriche sind erlaubt - Bindestriche werden durch Leerzeichen ersetzt. In der Tat, offenbar nur schwer zu verwenden sie nur Hauptstädte. Und Namen wie „O'Malley“ muss mit OMALLEY ersetzt werden.

Lassen Sie es an der Regierung. Ich muss sagen, ich bin begeistert, kein Entwickler arbeiten für DMV zu sein. (Obwohl ich wirklich diese Art von Gehalt nutzen könnte.)

UTF-8 sollte ausreichen, so weit wie Namensfelder gut sein, Sie mindestens einen Vornamen wollen werden und dauern.

Was tun Sie, wenn Sie „The Artist früher bekannt als Prinz“ haben. Das Symbol er verwendet wird, ist kein Zeichen im Unicode-Satz (AFAIK).

Es ist einige levity, aber zugleich sind Namen ein ziemlich weit gefasster Begriff, der sich nicht gut auf einem strukturierten Format eignet. In diesem Fall könnte etwas Freiform am besten geeignet.

Je nach Komplexität Ihres Namens Struktur ich sehen konnte:

  1. Vorname
  2. Initiale / Mittelname
  3. Nachname
  4. Suffix (Jr. Sr. II, III, IV, etc.)
  5. Präfix (Herr, Frau, Frau, etc.)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top