Simplemente navegando por nuestro esquema db y encontramos un campo llamado 'IsFemale'¿El nombre IsFemale es inapropiado para una columna de base de datos?
¿El nombre es bueno o es un poco ridículo?
Simplemente navegando por nuestro esquema db y encontramos un campo llamado 'IsFemale'¿El nombre IsFemale es inapropiado para una columna de base de datos?
¿El nombre es bueno o es un poco ridículo?
¿Alguna vez vas a tener que comprobar si "IsFemale" es verdadero/falso?
¿No sería más apropiada una columna como "PersonType" o algo así? De esa forma, podría tener "mujer", "varón", "compañía", etc., valores más posibles.
Marc
PD: pero si usted elige utilizar una columna de "bits" (booleano), entonces el "es" o "tiene" prefijo es una buena opción, en mi opinión - deja bastante claro que es un booleano!
femenina y masculina no son mutuamente excluyentes, por lo que tendrá que llegar a algo para transexuales, unisex, etc.
Para hacer esto como enterprisey como sea posible, cree una columna 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
... y así sucesivamente.
...el producto de mi empresa tiene algo como esto. Las opciones son masculinas, femeninas, transgénero masculino/femenino, transgénero femenino/masculino, y algo que significa asexual, pensó que el término exacto para el último se me escapa en la actualidad. – rmeador
Quizás debería referirse a los MOO cuando se presenta una lista de género: "LambdaMOO admite designaciones personalizadas de género, y viene con los siguientes ajustes preestablecidos: neutro, masculino, femenino, ya sea, Spivak, splat, plural, egotista, real y segundo -persona "de http://en.wikipedia.org/wiki/LambdaMOO –
También necesita considerar entidades legales, como corporaciones. Ciertamente no hombre o mujer, pero tampoco ambos. –
Tal vez nombrar la columna "género" (char con 'M', 'F') me haría más "sensible".
Esto es lo que uso, pero no porque sea más "sensible". Lo uso porque es más fácil de leer, utiliza el mismo espacio de datos y puede ampliarse para admitir empresas y hermafrodios si es necesario. –
@John - Mis caracteres deben ser más grandes que los tuyos ... Los míos me gusta estirar y tomar 8 bits. ;) –
Gender
parece una mejor opción, pero si quiere o necesita usar una columna booleana, solo hay dos opciones: IsMale o IsFemale.
Lo que está mal con el "sexo" clásico y apoyar subtipos tales como H, F, etc ...
Bueno, lo típico es tener la columna "sexo", pero usted puede terminar con Clientes desorientados tratando de archivarlo con valores como "dos veces por semana".
Otro problema es que depende del idioma. Por ejemplo, en inglés M significará M y, mientras que en español puede significar M ujer (mujer).
Para arreglar esto, conviértalo en 1 carácter ... por supuesto que aún deja "Y" como respuesta ... –
Hmmm. ¿'N' sería "neutro" o "no"? Solo estoy pensando ... – EricSchaefer
"dos veces por semana" ... jaja ... Ambos son buenos puntos, sin embargo. –
isFemale indica un problema más grande con el esquema, algo así como que se debe generalizar, o posiblemente incluso normalizó a cabo:
similares, con una columna de sexo en su tabla, que es una FK a una mesa sexo:
---------------------
| ID | Type |
|-------------------|
| 1 | Male |
| 2 | Female |
| 3 | Yes Please |
---------------------
Nota, en realidad no hago esto, es tonto, a menos que planee apoyar géneros inusuales. Todavía creo que una columna genérica es mejor que un bit de FeFemale.
Debería quedarse con el ISO standard si es posible.
ISO/IEC 5218Tecnología de la información - Códigos para la representación de los sexos humanos es una norma internacional que define una representación de sexos humanos a través de un código de un solo dígito del idioma. ...
Los cuatro códigos especificados en la norma ISO/IEC 5218 son:
- 0 = No se conocen,
- 1 = varón,
- 2 = hembra,
- 9 = no aplicable.
La norma especifica que su uso puede ser referido por el designador "SEX".
Mi línea favorita: "La norma establece explícitamente que no se debe dar importancia al hecho de que el macho está codificado como 1 y la hembra como 2. La codificación simplemente refleja la práctica existente en los países que iniciaron este estándar". Tan innecesariamente políticamente correcto –
Gran idea. ¡Comportamiento estandarizado y fácilmente argumentado! Tampoco lo sabía. –
@John: se puede discutir sobre el "innecesario" y depende mucho del contexto, pero lo bueno es que la PC no duele aquí. –
Si está preguntando si es risible, eso depende. ¿Sería mejor que malesa, chauvinista? (Es broma!)
Mi conjetura es que quien diseñó el pensamiento de base de datos de reglas de negocio especiales para las mujeres y diseñado de esta manera.
en realidad no hay una razón por la masculina debe ser verdadera y hembra debe ser falsa, y es posible que su base de datos es menos eficiente en el uso de una comparación carácter y carácter.
Desde el punto de vista de programación, evitando booleanos en tablas tienen sentido por las mismas razones que evitar booleanos en los parámetros de función tiene sentido.
Cada base de datos con la que he trabajado ha utilizado un nombre de columna de Género con valores 0 para Mujer y 1 para Hombre. Siempre he supuesto que estos valores se asignaron de la misma manera que los equipos electrónicos tienen conectores que se describen como femeninos o masculinos.
Sea o no IsFemale es de risa depende de la finalidad del sistema, sin embargo, parece haber pintado la aplicación en una esquina. Los campos de género, por ejemplo, se pueden cultivar para dar cabida a un "tipo" adicional, pero IsFemale obviamente siempre será verdadero o falso y, por lo tanto, no extensible en absoluto.
Para sistemas simples donde no hay ambigüedad sexual utilizo IsMale. La alternativa sería usar una tabla de búsqueda si sus requisitos incluyen individuos intersexuales. Si solo tiene hombres y mujeres, usar algo que no sea un valor booleano introduce complejidad innecesaria y ambigüedad en el sistema.
Está claro que al autor de la pregunta le preocupa (con razón) que el diseñador de la base de datos no haya tenido en cuenta el lenguaje de valor neutral.
(Tenga en cuenta que políticamente correcta es (con razón) ya no se considera aceptada, el lenguaje de valor neutral.)
Como diseñador de ordenador, tienen una obligación particular para asegurar que sus diseños no, sin darse cuenta, o no , incluir o propagar preferencia de género o superioridad.
Si bien el diseñador puede haber supuesto ingenuamente que IsFemale daría a las hembras un 1 y, por lo tanto, un valor superior/superior, los valores verdaderos a menudo reciben el valor de -1. Por no hablar de culturas donde 0 es un valor sagrado.
En la entrega de la próxima semana, cubriremos las personas que son intersexuales y la teoría queer y sus implicaciones para los estándares de nomenclatura variable.
Creo que incluso hay una razón técnica para no llamarlo así. No es un campo booleano semánticamente. La pregunta que trata de responder es (por lo general) no: "¿es esta persona mujer?", Sino más bien "¿qué sexo es esta persona?" Y la respuesta a eso no es "verdadera" ni "falsa". –
Y: no le daría * * sexo a un tratamiento preferido que no sea de PC ... err. ... sin valor neutral? –
Me pregunto qué aplicación tiene realmente para ese campo ... –
con el que estoy trabajando actualmente (interno) – boingboing9999
No se olvide: hay otros géneros además del masculino y el femenino. – mislav