database design - reales - Diseño básico de la base de datos: lista de instancias de tipo
libro de android studio en español pdf (1)
Esta es una pregunta para principiantes sobre el diseño de la base de datos. Supongamos que tenemos un sitio web de blogs con muchos usuarios, cada uno de los cuales tiene algunas publicaciones en el blog. Queremos encontrar rápidamente todos los artículos escritos por un usuario determinado. Podríamos buscar en la tabla de publicaciones todas las publicaciones de blog con el ID de usuario dado. También podríamos diseñar la tabla de usuarios para tener una lista de las publicaciones de los usuarios. Esto significaría, tal vez, almacenar una cadena de identificadores de publicación separados por comas. ¿Cuál es la forma apropiada de hacer esto?
Está buscando la normalización de la base de datos , una técnica que evita:
- Redundancia (almacenando los mismos datos más de una vez)
- Anomalías (cambiar un dato cambia a otro)
- Ciclos (Cambia A cambia B que cambia C y cambia A)
- Rediseño (agregar o eliminar un campo requiere cambiar otros campos)
- Sesgo (diferentes formas de hacer la misma pregunta da respuestas diferentes)
La forma típica de normalización se llama Forma normal de Boyce-Codd y, en general, es bastante difícil de hacer, pero puede mejorar su diseño implementando las Formas normales inferiores.
No nos ha dado suficiente información para recomendar un esquema para usted, pero "almacenar una cadena de identificadores de correos separados por comas" es una acción incorrecta si necesita distinguir entre ID de publicación. Si eso es lo que quieres, debes considerar un diseño como:
Users
userID other user fields ..
100 Charlie
101 Edith
Articles
articleID userID pathOrWhatever...
1000 100 http://example.com/stuff
1001 100 http://example.com/moreStuff
1002 101 http://example.com/somethingElse
Este diseño puede obtener artículos de usuarios o usuarios de artículos a partir de comandos de bases de datos.