Duda en diseño, arquitectura de BD

27/08/2004 - 01:44 por Cristián Z | Informe spam
Estimados colegas estoy empezando a migrar un sistema
para trabajar con facturación electrónica la
información se pasa en XML y las estructuras de datos
vienen dadas. Ahora mi duda en cuanto al diseño de la
base de datos, que será obviamente sql server 2000, es en
cuánto a ciertas, ¿como decirlo? ... "subtablas" en las
que se debe almacenar información acerca de, por ejemplo,
series de descuentos (%Porcentaje y $Monto) sobre un
item o impuestos, etc. Entonces tengo una tabla para
la Maestra de la Factura, Otra para el Detalle y voy a
tener que hacer "N" tablas chicas para almacenar la
información de impuestos adicionales, recargos, descuentos
e infinidad de cosas más (todas las subtablas manejan
distintos tipos de información así que no puedo resumir en
una para todo) que hago? la otra opción es usar
separadores y guardar todo dentro de un sólo campo... y la
otra es olvidarme de sql server y operar todo con xml...
¿Qué hago? una ayudita de los iluminados por favor... se
agradece!!! Saludos compañeros

Preguntas similare

Leer las respuestas

#1 MAXI
27/08/2004 - 02:01 | Informe spam
Hola, yo eso lo he resulto con una tabla de impuestos que esta relacionada
con la tabla cabecera de la factura o en su defecto con el detalle, todo
dependera de los impuestos como se aplican




Maxi

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

"Cristián Z" escribió en el mensaje
news:0f9501c48bc6$91eadbd0$
Estimados colegas estoy empezando a migrar un sistema
para trabajar con facturación electrónica la
información se pasa en XML y las estructuras de datos
vienen dadas. Ahora mi duda en cuanto al diseño de la
base de datos, que será obviamente sql server 2000, es en
cuánto a ciertas, ¿como decirlo? ... "subtablas" en las
que se debe almacenar información acerca de, por ejemplo,
series de descuentos (%Porcentaje y $Monto) sobre un
item o impuestos, etc. Entonces tengo una tabla para
la Maestra de la Factura, Otra para el Detalle y voy a
tener que hacer "N" tablas chicas para almacenar la
información de impuestos adicionales, recargos, descuentos
e infinidad de cosas más (todas las subtablas manejan
distintos tipos de información así que no puedo resumir en
una para todo) que hago? la otra opción es usar
separadores y guardar todo dentro de un sólo campo... y la
otra es olvidarme de sql server y operar todo con xml...
¿Qué hago? una ayudita de los iluminados por favor... se
agradece!!! Saludos compañeros
Respuesta Responder a este mensaje
#2 Javier Loria
27/08/2004 - 14:31 | Informe spam
Hola:
No estos seguro de entender el problema, pero si es lo que creo.
XML esta disenado para ser jerarquico, y SQL no, no existe, como bien lo
senalaste, las Sub-Tablas. Entonces lo que corresponde es "dividir" en
documento de XML en diferentes Tablas.
Tomando un ejemplo de los BOL:
declare @idoc int
declare @doc varchar(1000)
set @doc ='
<ROOT>
<Customer CustomerID="VINET" ContactName="Paul Henriot">
<Order OrderID="10248" CustomerID="VINET" EmployeeID="5"
OrderDate="1996-07-04T00:00:00">
<OrderDetail ProductID="11" Quantity="12"/>
<OrderDetail ProductID="42" Quantity="10"/>
</Order>
</Customer>
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
<Order OrderID="10283" CustomerID="LILAS" EmployeeID="3"
OrderDate="1996-08-16T00:00:00">
<OrderDetail ProductID="72" Quantity="3"/>
</Order>
</Customer>
</ROOT>'
exec sp_xml_preparedocument @idoc OUTPUT, @doc

BEGIN TRAN
INSERT INTO EncabezadorOrdenes (OrdenID, CustomerID, OrderDate)
SELECT *
FROM OPENXML (@idoc, '/ROOT/Customer/Order/OrderDetail',2)
WITH (OrderID int '../@OrderID',
CustomerID varchar(10) '../@CustomerID',
OrderDate datetime '../@OrderDate')

SELECT *
FROM OPENXML (@idoc, '/ROOT/Customer/Order/OrderDetail',2)
WITH (OrderID int '../@OrderID',
ProdID int '@ProductID',
Qty int '@Quantity')
COMMIT
Con los Inserts insertas en cada una de las tablas los datos
correspondientes.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Cristián Z" wrote in message
news:0f9501c48bc6$91eadbd0$
Estimados colegas estoy empezando a migrar un sistema
para trabajar con facturación electrónica la
información se pasa en XML y las estructuras de datos
vienen dadas. Ahora mi duda en cuanto al diseño de la
base de datos, que será obviamente sql server 2000, es en
cuánto a ciertas, ¿como decirlo? ... "subtablas" en las
que se debe almacenar información acerca de, por ejemplo,
series de descuentos (%Porcentaje y $Monto) sobre un
item o impuestos, etc. Entonces tengo una tabla para
la Maestra de la Factura, Otra para el Detalle y voy a
tener que hacer "N" tablas chicas para almacenar la
información de impuestos adicionales, recargos, descuentos
e infinidad de cosas más (todas las subtablas manejan
distintos tipos de información así que no puedo resumir en
una para todo) que hago? la otra opción es usar
separadores y guardar todo dentro de un sólo campo... y la
otra es olvidarme de sql server y operar todo con xml...
¿Qué hago? una ayudita de los iluminados por favor... se
agradece!!! Saludos compañeros
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida