2009-04-08 5 views

Antwort

1

Sie müssen immer nur nach "IsFemale" true/false suchen?

Wäre nicht eine Spalte wie "PersonType" oder so etwas passender? Auf diese Weise könnten Sie "weibliche", "männliche", "Firmen" und so weiter - mehr mögliche Werte haben.

Marc

PS: aber wenn man eine „Bit“ (boolean) Spalte verwenden mag, dann ist die „Ist“ oder „Hat“ Präfix eine gute Wahl ist, meiner Meinung nach - macht es ganz klar, es ist ein Boolescher!

27

Weibliche und männliche schließen sich nicht aus, so dass Sie für Transsexuellen etwas einfallen müssen werde, unisex, usw.

Um dies so enterprisey wie möglich zu machen, erstellen Sie eine GenderTypeID Säule:

GenderTypes 
----------- 
GenderTypeID Name  Greeting 

     1  Male  Dear Sir 
     2  Female Dear Madam 
     3  Unisex Dear Sir and Madam 
     4  Unknown Dear Sir or Madam 
     5  Android Dear Artificial Life Form 

... und so weiter.

+0

...Das Produkt meines Unternehmens hat so etwas in sich. Die Auswahlmöglichkeiten sind männlich, weiblich, transgender männlich/weiblich, transgender weiblich/männlich und etwas asexuell, dachte der genaue Begriff für den letzten entzieht sich mir derzeit. – rmeador

+0

Vielleicht sollten Sie auf MOOs verweisen, wenn Sie eine Geschlechtsliste haben: "LambdaMOO unterstützt benutzerdefinierte Bezeichnungen von Geschlecht und kommt mit den folgenden Voreinstellungen: Neutrum, männlich, weiblich, Spivak, Splat, Plural, egoistisch, königlich und 2 -person "von http://en.wikipedia.org/wiki/LambdaMOO –

+1

Sie müssen auch juristische Personen wie Unternehmen betrachten. Sicherlich nicht männlich oder weiblich, aber auch nicht beides. –

6

Vielleicht würde die Benennung der Spalte "Geschlecht" (char mit 'M', 'F') mich mehr "empfindlich".

+0

Dies ist, was ich benutze, aber nicht, weil es "sensitiver" ist. Ich benutze es, weil es einfacher zu lesen ist, genauso viel Datenraum nutzt und erweitert werden kann, um Unternehmen und Hermaphroditen bei Bedarf zu unterstützen. –

+3

@John - Meine Zeichen müssen größer sein als deins ... Meins streckt sich aus und nimmt 8 Bits auf. ;) –

0

Gender scheint eine bessere Wahl, aber wenn Sie eine boolesche Spalte verwenden möchten oder müssen, gibt es nur zwei Möglichkeiten - IsMale oder IsFemale.

1

Was mit dem klassischen „Sex“ ist falsch und Untertypen wie M, F Unterstützung, etc ...

+1

Wenn du diese Spalte jemals entfernen musst, dann wird jeder über "Entfernen von Sex aus unserem Schema" reden :-) – Vladimir

+2

Nun, im Moment reden wir darüber, ob wir überhaupt Sex im Schema haben sollen. – Chuck

6

Nun, die typische Sache ist „Sex“ Spalte zu haben, aber Sie können am Ende mit ahnungslose Kunden versuchen es mit Werten wie "zweimal pro Woche" zu archivieren.

Ein anderes Problem ist, dass es sprachabhängig ist. Zum Beispiel bedeutet in Englisch M M an, während es in Spanisch bedeutet M ujer (Frau).

+1

Um dies zu beheben, machen Sie es 1 Zeichen ... natürlich, dass immer noch "Y" als Antwort ... –

+0

Hmmm. Wäre "N" "Neutrum" oder "Nein"? Ich denke nur ... – EricSchaefer

+1

"zweimal in der Woche" ... lol ... Beide sind gute Punkte, aber. –

3

isFemale zeigt ein größeres Problem mit Ihrem Schema, so etwas verallgemeinert werden soll, oder möglicherweise sogar normalisiert aus:

Wie, eine Sex-Spalte auf dem Tisch hat, die eine FK auf eine Sex-Tabelle ist:

--------------------- 
| ID | Type  | 
|-------------------| 
| 1 | Male  | 
| 2 | Female  | 
| 3 | Yes Please | 
--------------------- 

Beachten Sie, tun Sie dies nicht wirklich, es ist dumm, es sei denn, Sie planen die Unterstützung ungewöhnlicher Geschlechter. Ich denke immer noch, dass eine generische Spalte besser ist als ein isFemale Bit.

44

Sie sollten mit der ISO standard wenn überhaupt möglich bleiben.

ISO/IEC 5218Informationstechnik - Codes für die Darstellung der menschlichen Geschlechter ist ein internationaler Standard, der eine Darstellung der menschlichen Geschlechter durch eine sprachneutrale einem einstelligen Code definiert. ...

Die vier Codes in ISO/IEC 5218 angegeben sind:

  • 0 =,,
  • 1 = männlich nicht bekannt
  • 2 = weiblich,
  • 9 = nicht anwendbar.

Die Norm legt fest, dass ihre Verwendung vom Bezeichner "SEX" bezeichnet werden kann.

+6

Meine Lieblingszeile: "Der Standard besagt ausdrücklich, dass die Tatsache, dass männlich als 1 und weiblich als 2 kodiert ist, keine Bedeutung hat. Die Kodierung spiegelt lediglich die bestehende Praxis in den Ländern wider, die diesen Standard initiiert haben." Also unnötig politisch korrekt –

+0

Tolle Idee. Einfaches, standardisiertes Verhalten! Ich wusste es auch nicht. –

+0

@John: Die "unnötige" kann streiten und hängt viel vom Kontext ab, aber das Gute ist: der PC tut hier nicht weh. –

0

Wenn Sie fragen, ob es lächerlich ist, hängt das ab. Wäre es besser, du Chauvinist? (Nur Spaß!)

Meine Vermutung ist, dass wer auch immer die Datenbank entworfen spezielle Geschäftsregeln für Frauen gedacht und es so entworfen hat.

Es gibt wirklich keinen Grund, warum männlich wahr sein sollte und weiblich sollte falsch sein, und es ist möglich, dass Ihre Datenbank in der Verwendung eines Zeichen- und Zeichenvergleichs weniger effizient ist.

Aus programmtechnischer Sicht ist die Vermeidung von booleschen Werten in Tabellen aus den gleichen Gründen sinnvoll, weil die Vermeidung von booleschen Werten in Funktionsparametern sinnvoll ist.

1

Jede Datenbank, mit der ich jemals gearbeitet habe, hat den Spaltennamen Gender mit den Werten 0 für Female und 1 für Male verwendet. Ich habe immer angenommen, dass diese Werte auf die gleiche Weise zugewiesen wurden, wie die Elektronikgeräte Anschlüsse haben, die als weiblich oder männlich beschrieben werden.

Ob IsFemale lächerlich ist oder nicht, hängt von der Absicht des Systems ab, aber es scheint, die Anwendung in eine Ecke gemalt zu haben. Gender-Felder können zum Beispiel um zusätzliche "Typen" erweitert werden, aber IsFemal wird offensichtlich immer nur wahr oder falsch und daher überhaupt nicht erweiterbar sein.

0

Für einfache Systeme, in denen es keine sexuelle Mehrdeutigkeit gibt, verwende ich IsMale. Die Alternative wäre, eine Nachschlagetabelle zu verwenden, wenn Ihre Anforderungen intersexuelle Personen enthalten. Wenn Sie nur Männer und Frauen haben, führt die Verwendung eines anderen als eines booleschen Wertes unnötige Komplexität und Mehrdeutigkeit in das System ein.

2

Es ist klar, dass der Fragesteller (zu Recht) besorgt ist über das Versagen des Datenbankdesigners, wertneutrale Sprache zu berücksichtigen.

(Bitte beachten Sie, dass politisch korrekt (zu Recht) nicht mehr als angenommen, wertneutrale Sprache.)

Als Computer-Designer, haben Sie eine besondere Verpflichtung Ihre Entwürfe nicht, inadvertantly, um sicherzustellen, oder nicht , Einbeziehung oder Verbreitung von geschlechtsspezifischen Präferenzen oder Überlegenheit.

Während der Designer naiv angenommen haben könnte, dass Weibchen Weibchen eine 1 und daher einen höheren/höheren Wert geben würde, erhalten wahre Werte oft den Wert -1. Ganz zu schweigen von Kulturen, in denen 0 ein heiliger Wert ist.

In der nächsten Woche befassen wir uns mit Menschen, die Intersexualität und Queer-Theorie sind, und ihren Implikationen für variable Benennungsstandards.

+2

Ich denke, es gibt sogar einen technischen Grund, es nicht so zu nennen. Es ist kein boolesches Feld semantisch. Die Frage, die es zu beantworten versucht, ist (normalerweise) nicht: "Ist diese Person weiblich?", Sondern eher das allgemeinere "was für ein Geschlecht ist diese Person?" Und die Antwort darauf ist weder "wahr" noch "falsch". –

+0

Und: würde nicht geben * entweder * Sex eine bevorzugte Behandlung machen es nicht-PC ... err. ... nicht wertneutral? –

Verwandte Themen