2011-04-05 25 views

Respuesta

8

Si está considerando esta pregunta, probablemente debería cambiar la forma en que planea almacenar los datos. En general, se considera una mala práctica tener un esquema de base de datos donde el número de tablas crece con el tiempo. Una mejor forma de almacenar datos es tener columnas de identificación (como una ID de usuario) y usar una fila para cada usuario. Puede tener varias tablas para diferentes tipos de datos, pero no debe tener tablas para cada usuario.

+0

por qué es malo, señor? – bhawin

+0

Años de teoría de la base de datos y mejores prácticas de diseño se basan en tablas como tipos de datos y filas como instancias de esos datos. Descubrirá que la mayoría de los patrones, bibliotecas y herramientas de base de datos (¡incluido SQL!) Se basan en esas suposiciones. En general, solo debe agregar una tabla a su esquema cuando necesite agregar un nuevo tipo de registro de datos al sistema. – Joshua

3

normalmente no es un límite lógico no. pero esta pregunta plantea la discusión: ¿por qué crees que podrías acercarte a un límite? si vas a crear muchas tablas, parece que tal vez realmente quieras crear muchas filas ... ¿tal vez podrías ampliar tu idea para que podamos proporcionar alguna guía de esquema?

3

Generalmente, el límite, si lo hay, debe ser lo suficientemente grande como para no preocuparse. Si te encuentras preocupado por eso, tienes problemas más grandes. Por ejemplo, si estuviera tratando con clientes que tienen pedidos, crearía una tabla para clientes y una tabla para pedidos. No debería crear una tabla para cada cliente.

4

No, mysql no tiene un límite para el número de tablas en una base de datos, aunque obviamente estará limitado por la cantidad de espacio de disco que tiene disponible.

Dicho esto, si hace esta pregunta, su diseño prospectivo probablemente sea bastante feo.

1

Puedo ver un motivo por el que algunos quieran una tabla por usuario. Si cada usuario va a tener un número creciente de registros/entradas/filas en el tiempo, y no desea que el código tenga que ordenar una lista gigantesca de entradas buscando filas que coincidan solo con el ID de usuario en particular, entonces la aplicación simplemente busque una tabla con el ID de usuario dado, y luego todo en esa tabla es solo para ese usuario. Mejorará el rendimiento cuando desee comparar y ordenar datos para un usuario en particular. He usado este método, aunque sea con menos de cien usuarios. No estoy seguro de las consecuencias que pueden enfrentar miles de usuarios.

0

¿Por qué poner a los usuarios en sus propias tablas? Me parece una pérdida de tiempo. Una tabla de usuarios con un ID de identificación que aumenta cada vez que se agrega una nueva fila funcionaría bien.

La ID podría ser una clave externa para otras tablas, como "Blog_Posts": cada publicación de blog necesitaría tener un autor, por lo que podría usar una columna "AuthorID" correlacionada con una ID de usuario en su tabla de usuarios.

Ahorra espacio y tiempo, además de que es más limpio.

Cuestiones relacionadas