sql - vista - sistema de gestion de base de datos ejemplos
Eficacia de la base de datos-tabla por usuario vs. tabla de usuarios (5)
Bueno, para responder a la pregunta específica: en términos de eficiencia de consulta, siempre será mejor tener tablas pequeñas, por lo tanto, es probable que una tabla por usuario sea la más eficiente.
Sin embargo, a menos que tenga muchas publicaciones y usuarios, es probable que esto no importe. Incluso con millones de filas, obtendrá un buen rendimiento con un índice bien ubicado.
Yo recomendaría fuertemente la estrategia de mesa por usuario, ya que agrega mucha complejidad a su solución. ¿Cómo haría una consulta cuando necesita encontrar, por ejemplo, usuarios que han publicado sobre un tema dentro del año?
Optimizar cuando sea necesario. No porque pienses / temes que algo sea lento. (E incluso si necesita optimizar, habrá opciones más fáciles que la tabla por usuario)
Para un sitio web que tenga usuarios. Cada usuario que tenga la capacidad de crear cualquier cantidad de, lo llamaremos "publicaciones":
Eficiencia en cuanto a eficiencia: es mejor crear una tabla para todas las publicaciones, guardando el ID de usuario que creó la publicación, para cada publicación - O creando una tabla diferente para cada usuario y colocando solo las publicaciones creadas por ese usuario?
El diseño de la base de datos no debe cambiar cuando se le agregan más datos, por lo que los datos del usuario definitivamente deben estar en una tabla.
También:
Tener varias tablas significa que tienes que crear consultas dinámicamente.
El plan de consulta en caché para una tabla no se utilizará para ninguna otra de las tablas.
Tener muchos datos en una tabla no afecta mucho al rendimiento, pero tener muchas tablas sí lo hace.
Si desea agregar un índice a la tabla para que las consultas sean más rápidas, es mucho más fácil hacerlo en una sola tabla.
Los esquemas con un número variable de tablas son, en general, malos. Utilice una sola tabla para sus mensajes.
Si el rendimiento es una preocupación, debería conocer los índices de base de datos. Si bien los índices no forman parte del estándar SQL, casi todas las bases de datos los admiten para ayudar a mejorar el rendimiento.
Le recomiendo que cree una sola tabla para las publicaciones de todos los usuarios y luego agregue un índice a esta tabla para mejorar el rendimiento de la búsqueda. Por ejemplo, puede agregar un índice en la columna de user
para que pueda encontrar rápidamente todas las publicaciones de un usuario determinado. También es posible que desee considerar agregar otros índices, según los requisitos de su aplicación.
Su primera propuesta de tener un solo user
y una única tabla de post
es el enfoque estándar a seguir.
En este momento, las publicaciones pueden ser la única función específica del usuario en su sitio, pero imagine que podría necesitar crecer en el futuro para que los usuarios tengan mensajes, preferencias, etc. Ahora, su enfoque de tabla por usuario por separado lleva a una explosión en el número de tablas que necesitarías crear.