2010-03-20 19 views
15

He estado buscando stackoverflow durante aproximadamente una hora y no he podido encontrar ningún tema relacionado, así que me disculpo si esta es una pregunta duplicada.¿Hay demasiadas tablas?

Mi consulta es esto. ¿Hay un punto en el que hay demasiadas tablas en una base de datos? Incluso si la estructura está bien organizada, pensada y facilita perfectamente la intención del diseño. Tengo una base de datos que se acerca rápidamente a 40 tablas, unas 10 principales y más de 30 tablas auxiliares (tablas de unión, tablas de "enumeración", etc.).

¿Soy solo un mal desarrollador, o debería intentar algo diferente? Me parece que a mí me da mucho miedo cómo impactará el rendimiento del proyecto. He hecho un montón de condensación cuando sea posible, cosas similares agrupados cuando sea posible, etc.

La base de datos se basa en SQL Server 2008.

+5

40 es todavía pequeño –

+1

¿Qué consideraría grande, entonces ? Esto es gigantesco para mí: en la escuela fallamos si pasamos más de 7 u 8 tablas incluso para aplicaciones complejas. - aunque en retrospectiva, el maestro dba no era muy brillante. – Ciel

+7

@Stacey hay una diferencia entre la escuela y la vida real. Incluso las aplicaciones comerciales relativamente simples pueden tener más de 40 tablas. –

Respuesta

14

Debe tener exactamente tantas tablas como necesite; ni mas ni menos.

Uno de los sistemas en los que estoy trabajando actualmente tiene 143 tablas, porque ese es exactamente el número requerido para resolver el problema.

+3

Estoy de acuerdo con su primera declaración, pero para ser un poco pedante, me resulta difícil creer que ** no pudo ** haber abordado el problema con 142, quizás no tan elegantemente o con la misma extensibilidad o rendimiento o lo que sea, pero aun así! :) –

+1

@Chris Eso no tiene sentido. Según tu lógica, podrías decir eso sobre tus 142 tablas, diciendo que debería hacerse en 141. Podrías decir eso continuamente hasta cuando ... ¿estás abajo en 1 mesa? –

+1

@Kevin: una tabla de EAV :) –

1

Realmente depende de la complejidad de la aplicación que está tratando de poner en práctica . Cosas como los sistemas de contabilidad son bastante intensas, han llegado fácilmente a más de 40 tablas.

2

Sin saber nada sobre su base de datos específica, diría que no, no está usando demasiadas tablas. Los problemas del mundo real y las necesidades comerciales pueden apuntar fácilmente a un esquema que sea al menos tan grande como el suyo. Creo que la pregunta real es si su diseño es adecuado para su problema.

+0

bruto Bueno, la mayoría de mis tablas son tablas de unión en un esfuerzo para psuedo-heredar de otros 'tipos'. Por ejemplo, tenemos una tabla de "Productos" y una tabla de "Artículos", pero son muy similares, por lo que hago otra tabla llamada "Detalles", asigno los productos y elementos a las tablas de empalmes individuales, y luego pongo el único artículos en las tablas de Productos y Artículos. Este tipo de escenario es de donde MÁS de mis tablas extra provienen. – Ciel

+0

Si cree que puede haber alguna redundancia innecesaria entre Productos y Artículos, le sugiero que comience otra pregunta con esos problemas específicos. –

+0

Muy bien, he publicado otra pregunta al respecto. Gracias de nuevo. http://stackoverflow.com/questions/2485253/unnecessary-redundancy-with-tables – Ciel

4

Parece que está haciendo su mayor esfuerzo para normalizar su base de datos. Eso es bueno. Muchas veces surgen problemas porque no hay suficientes tablas.

+0

Buen punto acerca de los problemas de tablas insuficientes. – HLGEM

2

Existe el exceso de tablas, pero 40 no se parece en nada a ese número. Y cuando la gente comienza a toparse con los límites del producto, suele ser el momento en el que necesitan replantearse su diseño.

Para el servidor SQL, los límites maximum capacity indican que un DB puede contener ~ 2000000000 tablas (si no contiene nada más, no tiene PK o restricciones de ningún tipo, etc.). No hace falta decir que si alcanzas este límite, estás haciendo algo mal (por ejemplo, has decidido tener 1 mesa por cliente, y de alguna manera has ganado muchos clientes)

0

En mi propio trabajo tengo alrededor de 60 tablas y parece que no es mucho) Creo que lo principal es cómo se organiza el datastore (relaciones entre tablas, etc.), cuántas consultas necesita para recuperar la información necesaria y qué tan simple se puede representar su información como objetos de trabajo en su aplicación.

0

Puede poner todos los datos de sus tablas reales en una tabla. A la segunda tabla puede contener solo sus 'nombres de tabla', y la aplicación seguirá funcionando.

Pero este no es el punto aquí.
Las tablas son algún tipo de estructura de organización. Son una especie de cajones.

¿Tengo demasiados cajones?

Depende ...

6

LOL nuestra principal db tiene más de 700 mesas, que no han trabajado con una base de datos tan pequeña que sólo tenía 40 mesas en años y años.

Mientras tengas las tablas que necesites y estén correlativamente normalizadas, estás bien.

He visto más problemas de rendimiento causados ​​por muy pocas tablas que demasiados.

1

2147483648 tablas o más pueden ser problemáticas con algunos motores. 9223372036854775808 tablas o más pueden ser problemáticas con otras.

(Pero si su pregunta quería decir si existe un cierto número n de modo que un diseño de base de datos con> n tablas deben necesariamente ser defectuoso, entonces no.)

Cuestiones relacionadas