es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Primera Forma Normal de SQL (1NF) vs Serialización

Digamos que tengo una tabla de equipos de fútbol, donde los nombres de los jugadores están vinculados a las posiciones:

teamId: 1
goalkeeper: 'Marc'
position1: 'John'
position2: 'Erik'
...

Pero ahora también quiero un atributo que represente a los jugadores sin tener en cuenta las posiciones. Crearía un nuevo atributo teamString que serialice todos los jugadores ordenados alfabéticamente (esto asegurará que diferentes equipos con los mismos jugadores tengan el mismo atributo teamString):

teamString: Eric-John-Marc[...]

Ahora puedo filtrar equipos con los mismos jugadores incluso si juegan en posiciones diferentes.

¿Este nuevo atributo teamString va en contra del principio de 1NF?

Gracias de antemano.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, crear un nuevo atributo teamString que contenga una lista serializada de jugadores ordenados alfabéticamente violaría el principio de la Primera Forma Normal (1NF). 1NF requiere que cada columna de una tabla contenga valores atómicos, lo que significa que no puede contener una lista o un conjunto de valores. Al crear una columna que es una lista serializada de jugadores, se está violando este principio.

    En su lugar, deberías considerar crear una tabla separada para los jugadores, donde cada jugador tenga un identificador único y un nombre. Luego, crear una tabla separada para los equipos que contenga el nombre del equipo y el ID del equipo. Finalmente, crear una tabla separada que asocie a cada jugador con un equipo, con una fila para cada jugador y su correspondiente ID de equipo. Esto te permitirá consultar equipos con los mismos jugadores sin violar los principios de normalización.

Comments are closed.