Nota al principio, mi pregunta resulta ser similar a la pregunta 1668172 de SO.Cómo diseñar la fecha de nacimiento en DB y ORM para la combinación de partes con fecha desconocida y conocida
Ésta es una cuestión de diseño que seguramente debe haber surgido de otros antes, pero no pude encontrar una respuesta que se ajusta a mi situación. Quiero grabar la fecha de nacimiento en mi solicitud, con varios 'niveles' de información:
NULL
valor, es decir DoB es desconocido1950-??-??
Sólo se conoce el valor del año fecha de nacimiento, la fecha/mes aren 't????-11-23
sólo un mes, el día, o una combinación de los dos, pero sin un año1950-11-23
completa DoB se conoce
las tecnologías estoy USI ng para mi aplicación son los siguientes:
- Asp.NET 4 (C#), probablemente con MVC
- alguna solución ORM, probablemente LINQ to SQL o NHibernate de
- MSSQL Server 2008, al principio sólo Express Edition
posibilidades de bits de SQL que pasó por mi mente hasta el momento:
- 1) Utilice una columna anulable por ejemplo varchar
1950-11-23
, y reemplazar unkowns con 'X's, p.XXXX-11-23
o1950-XX-XX
- 2) Utilice tres columnas nullable int p. Ej.
1950
,11
y23
- 3) Utilizar una columna INT para el año, además de una columna de fecha y hora para la plena conocida dobs
Para el extremo C# de este problema Simplemente llegué a estas dos opciones:
- A) Utilice una propiedad de cadena para representar DoB, convirtiendo solo para fines de visualización.
- B) Utilice una costumbre (?) Estructura o clase de DoB con tres enteros con valores nulos
- c) el uso de un DateTime anulable junto a un número entero anulable para el año
Las soluciones parecen formar pares emparejados en 1A, 2B o 3C. Por supuesto que 1A no es una buena solución, pero establece una línea de base.
Todos los consejos y enlaces son muy apreciados. Bueno, si están relacionados, de todos modos :)
Editar, acerca de las respuestas: he marcado una respuesta como aceptada, porque creo que me va a funcionar.Sin embargo, vale la pena mirar las otras respuestas, si ha tropezado aquí con la misma pregunta.
+1. Interesante pregunta. – RichardOD
He encontrado otra pregunta que me hizo una pregunta similar: http://stackoverflow.com/questions/1668172/handling-partial-incomplete-dates-in-net –