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

Relacion Maestro Detalle

Estas en el tema de Relacion Maestro Detalle en el foro de SQL Server en Foros del Web. Como puede hacerse una relacion de este tipo... Tengo 2 tablas Empresas y Usuarios La tabla Empresas Tiene su ID_Empresa, y otros campos La tabla ...
  #1 (permalink)  
Antiguo 14/07/2009, 19:00
 
Fecha de Ingreso: julio-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 0
Relacion Maestro Detalle

Como puede hacerse una relacion de este tipo...

Tengo 2 tablas Empresas y Usuarios

La tabla Empresas Tiene su ID_Empresa, y otros campos

La tabla Usuarios Tiene su ID_Usuario y un Campo ID_Empresa, y otros campos

el Campo ID_Empresa y el ID_Usuario son primary key

La tabla Empresas da de alta correctamente el autoincremental.

ahorita lo que tengo es esto:
ID_Usuario=1 con la ID_Empresa=1
ID_Usuario=2 con la ID_Empresa=2
ID_Usuario=3 con la ID_Empresa=1
porque el ID_Usuario es autoincremental

NECESITO que en la tabla Usuarios pueda tener el
ID_Usuario=1 con la ID_Empresa=1 y tener tambien el
ID_Usuario=1 con la ID_Empresa=2

Es decir, Que el Autoincremental sepa que de la empresa 1 sigue el incremental2 y que de la empresa2 sigue el incremental2

Como se hace esto??

Espero haber sido explicito...

Última edición por eduarrrr; 14/07/2009 a las 19:16
  #2 (permalink)  
Antiguo 14/07/2009, 20:17
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Relacion Maestro Detalle

Es un error de diseño, si un USUARIO, puede estar con mas de 1 empresa, entonces coloca una tabla intermedia, donde tengas IDUSUARIO y IDEMPRESA (quita IDEMPRESA de tu tabla de Usuarios)

Asi de simple
  #3 (permalink)  
Antiguo 15/07/2009, 09:28
 
Fecha de Ingreso: julio-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Relacion Maestro Detalle

Hola iislas.

No es eso lo que yo quiero.

Lo que quiero es Que la empresa 1 y la empresa 2 tengan un usuario 1 (no el mismo usuario).

Tal vez se ilustra mas asi:

Tenemos un tiket de venta donde en cada tiket necesitas saber el consecutivo de los articulos.

Tiket1
Articulo1.- Leche
Articulo2.-Azucar
Articulo3.-Huevos


Ticket 2
Articulo1.-Tomate
Articulo2.-Zanahoria

Ticket 3
Articulo1.-Azucar
Articulo2.-Sal
Articulo3.-Naranjas

Ahora solo cambia Ticket por empresa y articulo por Usuario..

Gracias...
  #4 (permalink)  
Antiguo 15/07/2009, 09:39
 
Fecha de Ingreso: julio-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Relacion Maestro Detalle

Lo que se me ocurre es agregarle un campo a la tabla Empresas para almacenar el ultimo numero de usuario dado de alta.

quedaria asi:

ID_Empresa Nombre UltimoUsuario
1 Empresa1 0
2 Empresa2 0

de modo que cuando quiera agregar un usuario a la empresa 1 verificar el numero "UltimoUsuario" y de ahi tomar el consecutivo.

Pero es un problema porque necesito implementar esto en todas las tablas para saber que informacion le corresponde a la empresa1 y cual a la empresa2 de modo que tendria que agregar un campo con este fin para cada tabla.

Por ejemplo para la tabla Clientes necesito que cada empresa tenga su propio cliente 1 para eso agregaria el Campo UltimoCliente.

Supongo que deberia haber una manera mas facil de solucionar esto.
  #5 (permalink)  
Antiguo 15/07/2009, 09:42
 
Fecha de Ingreso: julio-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Relacion Maestro Detalle

Otra idea que tengo es generarUna tabla Usuarios1 (para la empresa1) y otra usuarios2 para la empresa2 y aun asi tengo otro problema de que tendria muchas tablas exactamente iguales.

Insisto en que deberia haber una manera mas facil de solucionar esto.

Mi cabeza no me da para tanto...
  #6 (permalink)  
Antiguo 16/07/2009, 10:30
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Relacion Maestro Detalle

Insisto, es un error de diseño........
  #7 (permalink)  
Antiguo 16/07/2009, 18:29
 
Fecha de Ingreso: julio-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Relacion Maestro Detalle

Hola iislas... Gracias por responder.

Me podrias orientar sobre como diseñar una BD para hacer un sistema multiempresas??

De modo que Todas las empresas que vayas dando de alta tengan sus propios registros??

Solo ilustrame con estas 2 tablas las demas deberian de tener una solucion similar..
  #8 (permalink)  
Antiguo 17/07/2009, 09:21
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Relacion Maestro Detalle

Veamos:

1 Empresa -> Muchos Usuarios
1 Usuario -> Muchas Empresas (¿?)
  #9 (permalink)  
Antiguo 17/07/2009, 09:56
 
Fecha de Ingreso: julio-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Relacion Maestro Detalle

no.. un usuario una empresa..

pero el identificador del usuario se puede repetir, mas no asi el conjunto de los 2 identificadores.

Empresa 1-Usuario 1 es unico
Empresa 1-Usuario 2 es unico
Empresa 2-Usuario 1 es unico.
Empresa 2-Usuario 2 es unico.

Me serviria para hacer

Empresa 1- Factura 1 es unico
Empresa 2- Factura 1 es unico

Empresa 1- Cliente 1 es unico
Empresa 2- Cliente 1 es unico

Empresa 1- Articulo 1 es unico
Empresa 2- Articulo 1 es unico

y asi suscesivamente. que la informacion en todas las tablas este mezclada para todas las empresas, pero que con solo aplicar el Filtro Where ID_Empresa=X obtenga solo la informacion de la empresa X. Con su usuario empezando por el 1 y con incrementos, con su cliente 1 y sus incrementos.

En todas las busquedas que he hecho en goolge con la palabra multiempresa TODOS lo solucionan creando una BD nueva para cada empresa. Pero yo quisiera tener toda mi informacion en una sola BD. ¿Es posible?

Gracias de nuevo.
  #10 (permalink)  
Antiguo 17/07/2009, 12:34
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Relacion Maestro Detalle

Bueno, entonces "autoincrementa" manualmente el ID del usuario por Empresa, no lo declares IDENTTITY.

Cuando des de alta tu usuario (por empresa), haces un MAX(ID) + 1, agrupando por empresa.

¿No crees?
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 09:51.