Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/06/2013, 04:58
Avatar de happosai_sama
happosai_sama
 
Fecha de Ingreso: junio-2013
Mensajes: 1
Antigüedad: 10 años, 10 meses
Puntos: 0
Base Sql Propiedades y TipoPropiedades

Hola estoy con una duda sobre la creacion de mi base de datos, estoy usando sql 2005 y tengo que hacer un programa en Java, los datos que me pasan son los siguientes:

Los datos necesarios de las casas son:
dirección.
localidad.
metros cuadrados.
cantidad de ambientes.
precio.
Para los departamentos:
dirección.
piso.
localidad.
cantidad de ambientes.
precio.
antigüedad.
impuestos a pagar por inquilino (abl, luz gas, etc.)
Para los locales comerciales:
localidad.
cantidad de ambientes.
metros cuadrados.
precio
antigüedad.
impuestos a pagar por inquilino (abl, teléfono, inmobiliario, etc).
si se encuentra habilitado o no.

Mi idea principal era hacer una tabla Propiedades con su idPropiedad y un idTipoPropiedad, pero como me estan pidiendo datos especificos y distintos en el que seria mi TipoPropiedad nose como armarlo

Mi primera opcion fue tabla Propiedades: IdPropiedad idTipoPropiedad y cargue todo los tipos de datos de Casa, Depto, Comercial y una tabla IdTipoPropiedades

Mi segunda opcion fue crear 4 tablas, Propiedades, Casas, Deptos, Comerciales.
Y en Propiedades solo tengo el idPropiedad e IdPersona de otra tabla creada, y dentro de los tipos Casas, Deptos, Comerciales tengo su id respectivo y el idPropiedad dentro de cada uno
Código SQL:
Ver original
  1. CREATE TABLE [dbo].[Departamentos](
  2.     [id_departamento] [INT] NOT NULL,
  3.     [direccion] [VARCHAR](50) NULL,
  4.     [piso] [INT] NULL,
  5.     [localidad] [VARCHAR](50) NULL,
  6.     [cantidadAmbientes] [INT] NULL,
  7.     [precio] [INT] NULL,
  8.     [antiguedad] [INT] NULL,
  9.     [id_impuestosApagar] [INT] NULL,
  10.     [id_propiedad] [INT] NULL,
  11.  CONSTRAINT [PK_Departamentos] PRIMARY KEY CLUSTERED
  12. (
  13.     [id_departamento] ASC
  14. )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
  15. ) ON [PRIMARY]
  16.  
  17. GO
  18. SET ANSI_PADDING OFF
  19. GO
  20. ALTER TABLE [dbo].[Departamentos]  WITH CHECK ADD  CONSTRAINT [FK_Departamentos_Propiedades] FOREIGN KEY([id_propiedad])
  21. REFERENCES [dbo].[Propiedades] ([id_propiedad])
  22. GO
  23. ALTER TABLE [dbo].[Departamentos] CHECK CONSTRAINT [FK_Departamentos_Propiedades]
  24. GO
  25. ALTER TABLE [dbo].[Departamentos]  WITH CHECK ADD  CONSTRAINT [FK_Departamentos_TipoImpuestos] FOREIGN KEY([id_impuestosApagar])
  26. REFERENCES [dbo].[TipoImpuestos] ([id_impuestosApagar])
  27. GO
  28. ALTER TABLE [dbo].[Departamentos] CHECK CONSTRAINT [FK_Departamentos_TipoImpuestos]
  29.  
  30.  
  31. CREATE TABLE [dbo].[Comerciales](
  32.     [id_comercial] [INT] NOT NULL,
  33.     [localidad] [VARCHAR](50) NULL,
  34.     [cantidadAmbientes] [INT] NULL,
  35.     [metrosCuadrados] [INT] NULL,
  36.     [precio] [INT] NULL,
  37.     [antiguedad] [INT] NULL,
  38.     [id_impuestosApagar] [INT] NULL,
  39.     [habilitacion] [INT] NULL,
  40.     [id_propiedad] [INT] NULL,
  41.  CONSTRAINT [PK_Comerciales] PRIMARY KEY CLUSTERED
  42. (
  43.     [id_comercial] ASC
  44. )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
  45. ) ON [PRIMARY]
  46.  
  47. GO
  48. SET ANSI_PADDING OFF
  49. GO
  50. ALTER TABLE [dbo].[Comerciales]  WITH CHECK ADD  CONSTRAINT [FK_Comerciales_Propiedades] FOREIGN KEY([id_propiedad])
  51. REFERENCES [dbo].[Propiedades] ([id_propiedad])
  52. GO
  53. ALTER TABLE [dbo].[Comerciales] CHECK CONSTRAINT [FK_Comerciales_Propiedades]
  54. GO
  55. ALTER TABLE [dbo].[Comerciales]  WITH CHECK ADD  CONSTRAINT [FK_Comerciales_TipoImpuestos] FOREIGN KEY([id_impuestosApagar])
  56. REFERENCES [dbo].[TipoImpuestos] ([id_impuestosApagar])
  57. GO
  58. ALTER TABLE [dbo].[Comerciales] CHECK CONSTRAINT [FK_Comerciales_TipoImpuestos]
  59.  
  60.  
  61. CREATE TABLE [dbo].[Casas](
  62.     [id_casa] [INT] NOT NULL,
  63.     [direccion] [VARCHAR](50) NULL,
  64.     [metrosCuadrados] [INT] NULL,
  65.     [cantidadAmbientes] [INT] NULL,
  66.     [precio] [INT] NULL,
  67.     [id_propiedad] [INT] NULL,
  68.  CONSTRAINT [PK_Casas] PRIMARY KEY CLUSTERED
  69. (
  70.     [id_casa] ASC
  71. )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
  72. ) ON [PRIMARY]
  73.  
  74. GO
  75. SET ANSI_PADDING OFF
  76. GO
  77. ALTER TABLE [dbo].[Casas]  WITH CHECK ADD  CONSTRAINT [FK_Casas_Propiedades] FOREIGN KEY([id_propiedad])
  78. REFERENCES [dbo].[Propiedades] ([id_propiedad])
  79. GO
  80. ALTER TABLE [dbo].[Casas] CHECK CONSTRAINT [FK_Casas_Propiedades]
  81.  
  82. CREATE TABLE [dbo].[Propiedades](
  83.     [id_propiedad] [INT] NOT NULL,
  84.     [id_persona] [INT] NULL,
  85.  CONSTRAINT [PK_Propiedades] PRIMARY KEY CLUSTERED
  86. (
  87.     [id_propiedad] ASC
  88. )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
  89. ) ON [PRIMARY]
  90.  
  91. GO
  92. ALTER TABLE [dbo].[Propiedades]  WITH CHECK ADD  CONSTRAINT [FK_Propiedades_Personas] FOREIGN KEY([id_persona])
  93. REFERENCES [dbo].[Personas] ([id_persona])
  94. GO
  95. ALTER TABLE [dbo].[Propiedades] CHECK CONSTRAINT [FK_Propiedades_Personas]

Cual es la correcta?


Muchas Gracias
Saludos

Última edición por gnzsoloyo; 29/06/2013 a las 05:30