2009-04-08 10 views

risposta

1

Hai mai intenzione di verificare "IsFemale" vero/falso?

Non sarebbe più appropriata una colonna come "PersonType" o qualcosa del genere? In questo modo, potresti avere "femmina", "maschio", "compagnia" e così via - più valori possibili.

Marc

PS: ma se si sceglie di utilizzare una colonna di "bit" (booleano), poi la "è" o "ha" prefisso è una buona scelta, a mio parere - rende del tutto evidente che è un booleano!

27

femminile e maschile non si escludono a vicenda, quindi dovrete venire con qualcosa per transessuali, unisex, ecc

Per fare questo come enterprisey possibile, creare una colonna GenderTypeID:

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 

... e così via.

+0

...Il prodotto della mia azienda ha qualcosa di simile. Le scelte sono maschili, femminili, transgender maschio/femmina, transgender femminile/maschile, e qualcosa che significa asessuato, pensavo che il termine esatto per l'ultimo mi sfugge al momento. – rmeador

+0

Forse dovresti fare riferimento ai MOO quando crei una lista di genere: "LambdaMOO supporta le designazioni personalizzate di genere e viene fornito con i seguenti preset: neutro, maschio, femmina, o, Spivak, splat, plurale, egotistico, reale e secondo -person "da http://en.wikipedia.org/wiki/LambdaMOO –

+1

È inoltre necessario considerare entità legali, come le società. Certamente non maschio o femmina, ma non entrambi. –

6

Forse nominare la colonna "genere" (char con "M", "F") sarebbe più "sensibile".

+0

Questo è quello che uso, ma non perché è più "sensibile". Lo uso perché è più facile da leggere, utilizza lo stesso spazio di dati e può essere esteso per supportare aziende e ermafroditi, se necessario. –

+3

@John - I miei caratteri devono essere più grandi dei tuoi ... I miei amano allungarsi e occupare 8 bit. ;) –

0

Gender sembra una scelta migliore, ma se si desidera o è necessario utilizzare una colonna booleana, ci sono solo due scelte: IsMale o IsFemale.

1

Cosa c'è di sbagliato con il classico "sesso" e sostenere sottotipi come M, F, ecc ...

+1

se dovessi mai rimuovere questa colonna, allora tutti parleranno di "rimozione del sesso dal nostro schema" :-) – Vladimir

+2

Bene, in questo momento stiamo parlando se dovremmo fare sesso nello schema. – Chuck

6

Beh, la cosa tipica è quella di avere colonna "sesso", ma si può finire con clienti clueless cercando di archiviarlo con valori come "due volte a settimana".

Altro problema è che dipende dalla lingua. Ad esempio in inglese M significa M an, mentre in spagnolo può significare M ujer (donna).

+1

Per risolvere questo problema, rendi 1 carattere ... ovviamente che lascia ancora "Y" come risposta ... –

+0

Hmmm. "N" sarebbe "neutro" o "no"? Sto solo pensando ... – EricSchaefer

+1

"due volte a settimana" ... lol ... Entrambi sono buoni punti, comunque. –

3

isFemale indica un problema più grande con lo schema, una cosa del genere dovrebbe essere generalizzato, o forse anche out normalizzato:

simili, muniti di una colonna sesso sul vostro tavolo, che è un FK a una tabella di sesso:

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

Nota, in realtà non farlo, è sciocco, a meno che non si pianifichi di supportare sessi insoliti. Penso comunque che una colonna generica sia meglio di un bit isFemale.

44

È necessario attenersi allo ISO standard se possibile.

ISO/IEC 5218Information technology - Codici per la rappresentazione dei sessi umani è uno standard internazionale che definisce una rappresentazione dei sessi umani attraverso un codice a una sola cifra dalla lingua. ...

I quattro codici specificati nella norma ISO/IEC 5218 sono:

  • 0 = non nota,
  • 1 = maschio,
  • 2 = femmina,
  • 9 = non applicabile.

La norma specifica che il suo uso può essere riferito dal designatore "SESSO".

+6

La mia linea preferita: "Lo standard afferma esplicitamente che non si deve attribuire alcun significato al fatto che il maschio è codificato come 1 e la femmina come 2. La codifica riflette semplicemente la pratica esistente nei paesi che hanno iniziato questo standard." Quindi inutilmente politicamente corretto –

+0

Ottima idea. Comportamento standardizzato facilmente argomentato! Non lo sapevo neanche. –

+0

@John: il "unnecessariry" può essere discusso e dipende molto dal contesto, ma la cosa buona è che il PC non fa male qui. –

0

Se stai chiedendo se è ridicolo, dipende. Sarebbe meglio che Male fosse, sciovinista? (Sto scherzando!)

La mia ipotesi è che chiunque abbia progettato il database abbia pensato a regole aziendali speciali per le donne e l'ha progettato in questo modo.

Non c'è davvero una ragione per cui il maschio dovrebbe essere vero e la femmina dovrebbe essere falsa, ed è possibile che il database sia meno efficiente nell'usare un confronto di caratteri e caratteri.

Da un punto di vista della programmazione, evitare booleani nelle tabelle ha senso per le stesse ragioni per cui è opportuno evitare i valori booleani nei parametri di funzione.

1

Ogni database con cui ho mai lavorato ha utilizzato un nome di colonna di Sesso con valori 0 per Femmina e 1 per Maschio. Ho sempre pensato che questi valori fossero assegnati più o meno allo stesso modo in cui le apparecchiature elettroniche hanno connettori descritti come femmina o maschio.

Se IsFemale è ridicolo dipende o meno dall'intenzione del sistema, tuttavia sembra che abbia dipinto l'applicazione in un angolo. I campi di genere, ad esempio, possono essere ampliati per ospitare "tipi" aggiuntivi, ma IsFemale ovviamente sarà sempre vero o falso e quindi non estensibile.

0

Per i sistemi semplici in cui non c'è ambiguità sessuale, utilizzo IsMale. L'alternativa sarebbe utilizzare una tabella di ricerca se i requisiti includono individui intersessuali. Se si hanno solo maschi e femmine, l'uso di qualcosa di diverso da un valore booleano introduce complessità e ambiguità inutili nel sistema.

2

È chiaro che l'interrogante è preoccupato (giustamente) dell'errore del progettista del database di prendere in considerazione il linguaggio neutro rispetto al valore.

(Si prega di essere consapevole del fatto che politicamente corretta è (giustamente) non è più il linguaggio considerato accettato, valore neutro.)

Come designer computer, è necessario un particolare obbligo di garantire i vostri disegni non lo fanno, inavvertitamente o meno , includere o propagare preferenza di genere o superiorità.

Mentre il progettista può aver supposto ingenuamente che IsFemale dia alle donne un valore 1 e quindi superiore/superiore, ai valori reali viene spesso assegnato il valore -1. Per non parlare delle culture in cui 0 è un valore sacro.

Nella prossima settimana, copriremo le persone che sono intersex e la teoria queer e le sue implicazioni per gli standard di denominazione delle variabili.

+2

Penso che ci sia anche un motivo tecnico per non chiamarlo così. Non è un campo booleano semanticamente. La domanda a cui cerca di rispondere è (di solito) non: "è questa persona donna?", Ma piuttosto il più generale "che sesso è questa persona?" E la risposta a questo non è né "vera" né "falsa". –

+0

E: non dare * a * il sesso un trattamento preferito lo rende non-PC ... err. ... senza valore neutrale? –

Problemi correlati