SQL tabla virtual
-
20-09-2019 - |
Pregunta
He puesto mi base de datos, tales como:
Cada producto tengo tiene su propia mesa donde registra la cantidad vendida / transacción # (así columna 1 es "TransactionID", columna 2 es "cantidad")
ex) p-Überrascaespaldas (donde p es indicativo de "producto")
También hay mesas para cada año que mantienen registros de cada transacción que tuvo que pasar. Cada una de estas tablas posee las siguientes columnas: "tiempo" "fecha" "transactionId",,, "pt_CA", "pt_DB", "pt_VC", "pt_MC", "pt_CH", "pt_AM"
ex) las ventas del 2008, las ventas-2009, etc., etc.
Me gustaría ser capaz de hacer referencia a una sola tabla que contiene todos los registros de cada año sin tener que cambiar el SQL para la tabla para incluir un nuevo año.
Así, por ejemplo, me gustaría consultar todas las transacciones para "p-Überrascaespaldas", yo no quiero tener que escribir
SELECT sales-2008.date, sales-2009.date
FROM sales-2008, sales-2009
WHERE sales-2008.transactionID = p-backScratcher.transactionID
OR sales-2009.transactionID = p-backScratcher.transactionID
... sino más bien:
SELECT sales.date
FROM sales
WHERE sales.transactionID = p-backScratcher.transactionID
Solución
Me gustaría ser capaz de hacer referencia a una sola tabla que contiene todos los registros de cada año sin tener que cambiar el SQL para la tabla para incluir un nuevo año.
Esto es por qué no se debe utilizar una tabla para cada producto y un cuadro por año.
Lo que necesita es una tabla "Producto" y una mesa de "transacción".
Otros consejos
En SQL, como estados de respuesta de Kyle, se puede crear un Ver , que es una especie de mesa virtual, pero no te recomiendo que se obtiene un libro, o Google, diseño de base de datos relacional , antes de comprometerse a una estructura de base de datos.
Lo que usted está buscando se llama una "vista" que prácticamente es una declaración almacenado que es una lista de resultados con el formato correcto. Se puede consultar directamente como es una mesa.
No está seguro de lo grande que este proyecto es o cuáles son sus requisitos específicos son (por ejemplo, si tiene código asociado a él) pero es posible que desee ver en la migración de los datos a MS SQL (o MySQL, etc). SQL Server tiene una edición de escritorio, que es gratuita, pero sólo es compatible con un conjunto limitado de características (vistas se incluyen en eso).
MySQL, PostGreSQL, etc admite las características que usted está buscando, incluyendo tablas heredadas en PostGreSQL (no es exactamente lo que necesita, pero similar).
No he trabajado con acceso por un tiempo, y no estoy seguro de que apoyará las características que usted está buscando.