Sistema multiempresa

17/10/2004 - 13:33 por Berta Gomez | Informe spam
Estoy por hacer un sistema multi-empresa y estoy pensando tener una base de
datos independiente por cada empresa pero pienso que tengo algunas tablas
que no estan asociadas a ninguna empresa (tablas del sistema) como la
definicion de parametros, usuarios, etc. . Por tanto deberia tener una
base de datos para la tabla del sistema y una base de datos separada para
cada empresa que se instale. Me trae algun problema hacerlo asi ?


Gracias

Berta Gomez

Preguntas similare

Leer las respuestas

#1 MAXI
17/10/2004 - 17:01 | Informe spam
Hola, has pensado poner todo en la misma BDD y que toda tabla de tu sistema
disponga de un campo llamado Empresa_id por ej!!

Ojo es solo una idea, para que no tengas tantas BDD y se te transforme en un
problema el mantenimiento posterior :-)




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)
Mail: Maxi_accotto[arroba]speedy.com.ar

Msn Messager:

"Berta Gomez" escribió en el mensaje
news:
Estoy por hacer un sistema multi-empresa y estoy pensando tener una base
de
datos independiente por cada empresa pero pienso que tengo algunas tablas
que no estan asociadas a ninguna empresa (tablas del sistema) como la
definicion de parametros, usuarios, etc. . Por tanto deberia tener una
base de datos para la tabla del sistema y una base de datos separada para
cada empresa que se instale. Me trae algun problema hacerlo asi ?


Gracias

Berta Gomez


Respuesta Responder a este mensaje
#2 Berta Gomez
17/10/2004 - 17:13 | Informe spam
Gracias Maxi.

Si.. ya lo pense y siendo sincera la verdad que no me gusta ese metodo
porque implica que en todas las consultas tenga que agregar la empresa a la
clausula where.

Cuales son los problemas de mantenimiento que podria tener al tenerlas
separadas ?



"MAXI" wrote in message
news:
Hola, has pensado poner todo en la misma BDD y que toda tabla de tu


sistema
disponga de un campo llamado Empresa_id por ej!!

Ojo es solo una idea, para que no tengas tantas BDD y se te transforme en


un
problema el mantenimiento posterior :-)




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)
Mail: Maxi_accotto[arroba]speedy.com.ar

Msn Messager:

"Berta Gomez" escribió en el mensaje
news:
> Estoy por hacer un sistema multi-empresa y estoy pensando tener una base
> de
> datos independiente por cada empresa pero pienso que tengo algunas


tablas
> que no estan asociadas a ninguna empresa (tablas del sistema) como la
> definicion de parametros, usuarios, etc. . Por tanto deberia tener


una
> base de datos para la tabla del sistema y una base de datos separada


para
> cada empresa que se instale. Me trae algun problema hacerlo asi ?
>
>
> Gracias
>
> Berta Gomez
>
>


Respuesta Responder a este mensaje
#3 Guillermo Roldán
17/10/2004 - 17:50 | Informe spam
A priori, la única pega que le encuentro está en que no puedes establecer
integridad referencial entre tablas de distintas BBDDs. Aunque, esto se
podría conseguir utilizando triggers, por ejemplo.

Por darte ideas (para que tengas más opciones sobre las que elegir), decirte
que otra forma posible, es utilizando una única BBDD con distintos esquemas.
En el caso de SQL Server 2000, para poder utilizar un esquema deberás
crearte un usuario, y crearte la tabla como propiedad del usuario.

Imaginate estas tres tablas:
- emp01.tbl_movimientos
- emp02.tbl_movimientos
- dbo.tbl_comun

Si inicio sesión en la BBDD con el usuario emp01, y ejecuto SELECT * FROM
tbl_movimientos, veré los datos de emp01. Además, si tengo permisos, también
podré ejecutar SELECT * FROM tbl_comun. Es decir, no me es necesario
cualificar las tablas con el propietario. Creo que esto te puede resultar
apropiado, ya que por lo que dices en tu mensajes, tienes idea de separar
los usuarios de la aplicación (dentro de una de las tablas comunes), de los
usuarios de la BBDD.

Espero que te sirva la idea (aunque sólo sea para descartarla ... ;-)

Saludos,

Guillermo Roldán
MCDBA, MCSE, MCSA
Madrid - Spain


"Berta Gomez" escribió en el mensaje
news:
Estoy por hacer un sistema multi-empresa y estoy pensando tener una base


de
datos independiente por cada empresa pero pienso que tengo algunas tablas
que no estan asociadas a ninguna empresa (tablas del sistema) como la
definicion de parametros, usuarios, etc. . Por tanto deberia tener una
base de datos para la tabla del sistema y una base de datos separada para
cada empresa que se instale. Me trae algun problema hacerlo asi ?


Gracias

Berta Gomez


Respuesta Responder a este mensaje
#4 Maximiliano D. A.
18/10/2004 - 00:15 | Informe spam
Hola, pues es una discusion eterna esta :-), pero aca va mi punto de vista:

Si dividis por cada empresa una BDD, vas a tener algunos problemas como:

1) Hay entidades que son comunes a todas las empresas quizas, como por ej
"Clientes"
2) Si necesitas hacer integridad referencial, como estan en distintas BDD
vas a tener que usar Trigger y no la forma natural que tiene SQL.
3) Si te piden consolidar cosas (por ej: las ventas de todas las empresas
agrupadas por Cliente) vas a tener que armarte un query bastante complicado
y si aparece una nueva empresa (como es una nueva BDD) v as a tener que
modificar el query!! claro que esta consolidacion te hara hacer muchos JOIN
haciendo que pierda rendimiento la aplicacion.

En mi opinion, pondria un campo llamada Empresa!! esto seguro que es mas
complicado al inicio pero te vas a ahorrar muchos dolores de cabeza en el
futuro.

Vuelvo a repetir, esta es solo mi opinion :-)

Ademas Sql no tiene problemas en trabajar con grandes volumnes de datos, por
lo cual ...


"Berta Gomez" escribió en el mensaje
news:%
Gracias Maxi.

Si.. ya lo pense y siendo sincera la verdad que no me gusta ese metodo
porque implica que en todas las consultas tenga que agregar la empresa a


la
clausula where.

Cuales son los problemas de mantenimiento que podria tener al tenerlas
separadas ?



"MAXI" wrote in message
news:
> Hola, has pensado poner todo en la misma BDD y que toda tabla de tu
sistema
> disponga de un campo llamado Empresa_id por ej!!
>
> Ojo es solo una idea, para que no tengas tantas BDD y se te transforme


en
un
> problema el mantenimiento posterior :-)
>
>
>
>
> Maxi
>
> Buenos Aires - Argentina
> Desarrollador .NET 3 Estrellas
> Microsoft User Group (MUG)
> Mail: Maxi_accotto[arroba]speedy.com.ar
>
> Msn Messager:
>
> "Berta Gomez" escribió en el mensaje
> news:
> > Estoy por hacer un sistema multi-empresa y estoy pensando tener una


base
> > de
> > datos independiente por cada empresa pero pienso que tengo algunas
tablas
> > que no estan asociadas a ninguna empresa (tablas del sistema) como la
> > definicion de parametros, usuarios, etc. . Por tanto deberia tener
una
> > base de datos para la tabla del sistema y una base de datos separada
para
> > cada empresa que se instale. Me trae algun problema hacerlo asi ?
> >
> >
> > Gracias
> >
> > Berta Gomez
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Ricardo Passians
18/10/2004 - 01:15 | Informe spam
Vuelvo a repetir, esta es solo mi opinion :-)




Claro. Se respeta la opinión.. Yo por el contrario soy partidario de la
separación pues muchos de los controles de consolidación y similares pueden
hacerse desde la aplicación.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida