Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Modelar Base Datos Sencilla

Estas en el tema de Modelar Base Datos Sencilla en el foro de Bases de Datos General en Foros del Web. Buenas a todos, estoy intentando realizar una base de datos para resolver un problemilla de administración... el tema es el siguiente: Tengo usuarios, que se ...
  #1 (permalink)  
Antiguo 04/12/2012, 12:59
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 7 meses
Puntos: 1
Modelar Base Datos Sencilla

Buenas a todos, estoy intentando realizar una base de datos para resolver un problemilla de administración... el tema es el siguiente:

Tengo usuarios, que se registraran en una aplicación web, compraran una licencia que les dara acceso a ver unos contenidos.

Estas licencias son de 3 tipos.(Publicada, Asignada,Publicada y Asignada)

Por ahora este seria mi diagrama de tablas:
El usuario hara n pagos segun las licencias que vaya comprando, pues son temporales.
El usuario tiene 1 licencia , puesto que las anteriores se eliminaran una evz adquiera una nueva, dado que el historico queda reflejado en pagos.
Los pagos se relacionan 1 a 1 con las licencias, es obvio creo...



Esos contenidos son obras, estas en un primer momento se ofrecen al publico, hay un concurso y despues se asignan a alguien, por lo tanto pueden estar publicadas o publicadas y asignadas.

Segun la licencia que compre el usuario podra ver las publicadas, las asignadas o todas.(Los tres tipos de licencia.)

Mi problema es que no se como relacionar la tabla obras con el resto.
Pense en hacerlo con Licencias pero no le encuentro sentido.

Que podria haceR?
  #2 (permalink)  
Antiguo 05/12/2012, 05:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Modelar Base Datos Sencilla

La relación usuario <-Licencia no es es 1:1, sino de 1:N, porque cada usuario ha tenido N licencias, aunque sólo una de ellas esté activa y vigente.
Esto se implementa poniendo en la entidad Licencia dos campos: fecha_alta y fecha_baja, tal que sólo un registro pueda tener la fecha_baja como nulo (el activo). De ese modo no solo controlas la relación sino que se puede trazar históricamente las licencias de cada usuario.
Los Pagos tienen relacion 1:N con Usuario y 1:1 con Licencia, si la licencia se paga una sola vez, o 1:N si se realizan varios pagos.
¿Las licencias, por su lado, son siempre (en todas partes) distintas por cada obra, pero una licencia es sólo para una obra o no?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 05/12/2012, 06:10
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Modelar Base Datos Sencilla

Cita:
La relación usuario <-Licencia no es es 1:1, sino de 1:N, porque cada usuario ha tenido N licencias, aunque sólo una de ellas esté activa y vigente.
Esto se implementa poniendo en la entidad Licencia dos campos: fecha_alta y fecha_baja, tal que sólo un registro pueda tener la fecha_baja como nulo (el activo). De ese modo no solo controlas la relación sino que se puede trazar históricamente las licencias de cada usuario.
SI pense en eso primero, pero como cada licencia corresponde con un pago, dije bueno cada vez que compre una nueva borro la anterior, e inserto la nueva, dado que el historico quedaba reflejado en los pagos.
No obstante lo hare como tu me comentas, ya que entiendo que mi manera de pensar era incorrecta.


Cita:
Los Pagos tienen relacion 1:N con Usuario y 1:1 con Licencia, si la licencia se paga una sola vez, o 1:N si se realizan varios pagos.
Cada licencia se paga una vez, pero tienen una fecha de alta y otra de baja, por ejemplo el usuario compra un licencia del tipo1 para un mes, acabado ese mes si quiere seguir disfrutando de eso debe comprar otra de un mes o del tiempo que sea...
Por eso puse 1:1 con Licencia, es correcto?entiendo que si vuelve a comprar la misma quizas deberia ser 1 a N, pero bueno podria poner unida a la tabla licencias otra q sea TipoLicencia y esta unida tal que Usuario 1a1 Licencia n a 1 Tipolicencia. NO?



Cita:
¿Las licencias, por su lado, son siempre (en todas partes) distintas por cada obra, pero una licencia es sólo para una obra o no?
No son distintas, simplemente hay 3 tipos , entonces cuando un usuario compra , recibe una licencia del tipo que sea que le permita ver contenidos, pero no veo una relacion directa dado que una licencia te dara acceso a n contenidos(obras) y n contenidos seran accesible por n licencias... Es por ello que no encuentro una relacion ...

El caso practico es tengo 3 obras por ejemplo 2 publicadas y una publicada y asignada:

Usuario compra licencia para publicadas: Esto le permitira ver solo las publicadas(2).

Usuario compras licencia para asignadas: Esto le pemritira ver solo las asignadas(1).

Usuairo compra licencia para publicadas y asignadas. Esto le permitira ver todas(3).

Las licencias en si es como un pase que te permite acceder a los contenidos segun su tipo , pero nada mas... por eso no veo la relacion directa, segun la licencia que compras puedes ver unos contenido u otros.


Me explico?

Última edición por ferminako; 06/12/2012 a las 04:14
  #4 (permalink)  
Antiguo 07/12/2012, 06:10
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Modelar Base Datos Sencilla

Alguien ve la relación, necesito tenerlo listo para el lunes comenzar ...
  #5 (permalink)  
Antiguo 15/12/2012, 13:01
 
Fecha de Ingreso: enero-2009
Mensajes: 32
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Modelar Base Datos Sencilla

Así es a grandes rasgos cómo lo veo yo:




- El usuario compra una licencia de tipo X por un periodo de validez a determinar.
- Los datos de la compra lo almacenamos en TRANSACCION.
- El tipo de licencia detalla los estados de obra que la licencia incluirá.
- Las obras están catalogadas por un estado.

Ejemplo:

ESTADOS DE OBRA:

- Publicada
- Asignada

TIPOS DE LICENCIA

- Publicación
- Asignación
- Total

TIPOS DE LICENCIA ESTADO

- Publicación tiene asociado el estado de obra Publicada
- Asignación tiene asociado el estado de obra Asignada
- Total tiene asociados los estados Publicada y Asignada

Usuario PEPE compra licencia TOTAL para Diciembre de 2012

USUARIO

- Pepe

LICENCIA

- Licencia 1 del usuario PEPE de tipo TOTAL desde 01/12/12 hasta 31/12/2012

TRANSACCION

- Transacción de la compra correspondiente a la licencia 1


A partir de ese momento, según el modelo definido, durante el mes de diciembre, PEPE podrá consultar la información de todas las obras en estado PUBLICADA o ASIGNADA.

Si tienes alguna consulta no dudes en preguntar.
__________________
Anotaciones de un programador

Etiquetas: bd, sencilla, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:07.