Base de datos relacional - Se puede hacer esto?

30/12/2009 - 01:30 por Luis Mata | Informe spam
Mi problematica

- utilizo SQL 2008
- Tengo nueve sedes
- el rubro ventas

quiero hacer Base de datos independientes para cada tienda (Para evitar
sobrecarga de datos)
Mi base de datos es relacional, pero estoy viendo que por ejemplo: todas las
tiendas manejan los mismos clientes, proveedores, vendedores, cajeros...
estoy pensando hacer a estos como una base de datos Global, pero mi base de
datos relacional queda un vacio enorme, no puedo relacionar las ventas con
los clientes porque estarian en la otra base de datos global, mis
proveedores pierden relacion con las compras por la misma razon.

replicar estas tablas en cada base de datos me crea redundancia, pero me
soluciona el problema de relacionar las tablas y mis datos estan mas
seguros.

Existe alguna forma de crear relaciones entre Bases de datos?

Eso seria formidable ya que tendria tablas globales que no dejarian
huerfanas (Mediante Relacionarlas) a las ventas ni las compras y las
compartirian todas mis sedes.

Luis Mata

Preguntas similare

Leer las respuestas

#6 Agustin Cot
04/01/2010 - 13:00 | Informe spam
Pero en general es para tener una idea, ya que vengo de FOX

Gracias
Agustin


"Maxi Accotto" escribió en el mensaje
news:
Hola, eso depende del sistema, no hay un modelo unico



Maxi Accotto
MVP en SQL Server
http://blog.maxiaccotto.com

"Agustin Cot" wrote in message
news:#
Hola, aprovechando cual seria la estructura "ideal" para un programa de
gestion,facturacion,contabildad y TPV

es decir como estructurar los ejercicios,tablas comunes, etc..

Gracias
Agustin

"Maxi Accotto" escribió en el mensaje
news:
Luis, si quiere entramos en detalle de su diseño : Yo pondria todo en
una sola base de datos, los "Problemas" que menciona son todos
solucionables desde el SQL sin afectar a la aplicacion (usando
particionamiento, filegroups, etc, etc)

Yo tengo clientes con aplicaciones que su base de datos pesa 1TB y hay
mas de 15 mil tablas en un Sql Server.

Ahora bien, si descartamos su diseño y entramos en la pregunta, para
hacer eso que usted quiere debe usar Triggers.

Yo le aconsejo que revise su diseño, SQL Server no es Access ni Fox ni
parecido y la forma de pensar el diseño que usted esta comentando es de
otros años con otra tecnologia y otras limitaciones :)





Maxi Accotto
MVP en SQL Server
http://blog.maxiaccotto.com

"Luis Mata" wrote in message
news:
Gracias por responder

y hay alguna otra forma de solucionar esto? porque tengo 250000
clientes hasta ahora y no quiero duplicarlos en cada bd, solo por el
tema de relacionarlas.
Para mi caso los clientes son para todas las BD, los proveedores, los
vendedores, tipos de pagos, tarjetas son iguales para todas las sedes.
Cada tienda tiene muchos almacenes y varias cajas de cobranza, y
ponerlas todas en una sola BD me generaría un desorden a la larga,
aparte de que desde ya estaría viendo las transacciones crecerían
muchísimo en un año, y esto tardaría ante cualquier select(consulta)
alguna otra arquitectura de BD que me pueda ayudar.

Luis


"Alejandro Mesa" escribió en
el mensaje de noticias
news:
Luis Mata,

No, no se puede referenciar una tabla en otra base de datos desde una
restriccion de clave foranea.

Una forma seria utilizando un trigger para validar que la clave
referenciada
existe en la tabla padre. Tambien tendras que crear triggers en las
tablas
padres para que no se elimine o cambia una clave que es referenciada.
Un
problema grande que tiene este mecanismo, es que si la base de datos
que
contiene las tablas padres, se restaura por alguna necesidad, entonces
pueden
quedar filas huerfanas en las bases que contienen las tablas hijos.


AMB



"Luis Mata" wrote:

Mi problematica

- utilizo SQL 2008
- Tengo nueve sedes
- el rubro ventas

quiero hacer Base de datos independientes para cada tienda (Para
evitar
sobrecarga de datos)
Mi base de datos es relacional, pero estoy viendo que por ejemplo:
todas las
tiendas manejan los mismos clientes, proveedores, vendedores,
cajeros...
estoy pensando hacer a estos como una base de datos Global, pero mi
base de
datos relacional queda un vacio enorme, no puedo relacionar las
ventas con
los clientes porque estarian en la otra base de datos global, mis
proveedores pierden relacion con las compras por la misma razon.

replicar estas tablas en cada base de datos me crea redundancia, pero
me
soluciona el problema de relacionar las tablas y mis datos estan mas
seguros.

Existe alguna forma de crear relaciones entre Bases de datos?

Eso seria formidable ya que tendria tablas globales que no dejarian
huerfanas (Mediante Relacionarlas) a las ventas ni las compras y las
compartirian todas mis sedes.

Luis Mata

.
















Respuesta Responder a este mensaje
#7 Luis Mata
05/01/2010 - 15:00 | Informe spam
Todo lo que tu me dices esta correcto pero a la hora de la hora he visto
deficiencias en tiempos de respuesta del sql, eso que trabaje con el 2000,
2005 y ahora 2008, como el sistema lo corro con un servidor para ahora 9
distritos y 2 departamentos y se viene 4 departamentos mas y la idea es
tener uno en cada departamento del pais, la estructura en una sola base de
datos no me sirve.
con solo mencionarte que cuando los vendedores hacen proformas en un año
tengo millones de registros, eso multplicalo por 13 sucursales, esto segun
pasa los meses de enero, febrero.diciembre el tiempo de respuesta es
cada vez mas lento, y los indices estan correctos, ahora eso pasalo para
todas las tablas almacen, ventas... en 2 años se volveria todo mas pesado y
lo he probado. es por eso que quiero hacer Bases de datos separadas y no me
interesa si es tecnologia desfasada y lo haga quien lo haga, ahora es mi
necesidad y si hay alguna forma de hacerlo compartanlo.
Capacidad de disco no es mi problema con las monstrusidades de discos que
salen no veo problema.
Mi problema viene en la optimizacion del tiempo de respuesta de la Bd,

Nota
Tengo un hilo que nadie me responde anteriormente sobre el porque un
procedimiento almacenado me satura mi ancho de banda. Haber si me pueden dar
una mano con eso.

Luis




"Maxi Accotto" escribió en el mensaje de
noticias news:
Luis, si quiere entramos en detalle de su diseño : Yo pondria todo en una
sola base de datos, los "Problemas" que menciona son todos solucionables
desde el SQL sin afectar a la aplicacion (usando particionamiento,
filegroups, etc, etc)

Yo tengo clientes con aplicaciones que su base de datos pesa 1TB y hay mas
de 15 mil tablas en un Sql Server.

Ahora bien, si descartamos su diseño y entramos en la pregunta, para hacer
eso que usted quiere debe usar Triggers.

Yo le aconsejo que revise su diseño, SQL Server no es Access ni Fox ni
parecido y la forma de pensar el diseño que usted esta comentando es de
otros años con otra tecnologia y otras limitaciones :)





Maxi Accotto
MVP en SQL Server
http://blog.maxiaccotto.com

"Luis Mata" wrote in message
news:
Gracias por responder

y hay alguna otra forma de solucionar esto? porque tengo 250000 clientes
hasta ahora y no quiero duplicarlos en cada bd, solo por el tema de
relacionarlas.
Para mi caso los clientes son para todas las BD, los proveedores, los
vendedores, tipos de pagos, tarjetas son iguales para todas las sedes.
Cada tienda tiene muchos almacenes y varias cajas de cobranza, y ponerlas
todas en una sola BD me generaría un desorden a la larga, aparte de que
desde ya estaría viendo las transacciones crecerían muchísimo en un año,
y esto tardaría ante cualquier select(consulta)
alguna otra arquitectura de BD que me pueda ayudar.

Luis


"Alejandro Mesa" escribió en el
mensaje de noticias
news:
Luis Mata,

No, no se puede referenciar una tabla en otra base de datos desde una
restriccion de clave foranea.

Una forma seria utilizando un trigger para validar que la clave
referenciada
existe en la tabla padre. Tambien tendras que crear triggers en las
tablas
padres para que no se elimine o cambia una clave que es referenciada. Un
problema grande que tiene este mecanismo, es que si la base de datos que
contiene las tablas padres, se restaura por alguna necesidad, entonces
pueden
quedar filas huerfanas en las bases que contienen las tablas hijos.


AMB



"Luis Mata" wrote:

Mi problematica

- utilizo SQL 2008
- Tengo nueve sedes
- el rubro ventas

quiero hacer Base de datos independientes para cada tienda (Para evitar
sobrecarga de datos)
Mi base de datos es relacional, pero estoy viendo que por ejemplo:
todas las
tiendas manejan los mismos clientes, proveedores, vendedores,
cajeros...
estoy pensando hacer a estos como una base de datos Global, pero mi
base de
datos relacional queda un vacio enorme, no puedo relacionar las ventas
con
los clientes porque estarian en la otra base de datos global, mis
proveedores pierden relacion con las compras por la misma razon.

replicar estas tablas en cada base de datos me crea redundancia, pero
me
soluciona el problema de relacionar las tablas y mis datos estan mas
seguros.

Existe alguna forma de crear relaciones entre Bases de datos?

Eso seria formidable ya que tendria tablas globales que no dejarian
huerfanas (Mediante Relacionarlas) a las ventas ni las compras y las
compartirian todas mis sedes.

Luis Mata

.






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida