Generación de Información a Partir de Datos en Bases de Datos

Clase 32 de 35Curso de Desarrollo Web con PHP y Yii2

Resumen

¿Cómo generar información a partir de datos en bases de datos?

En el mundo actual, no basta con tener datos almacenados en bases de datos; es crucial transformarlos en información útil, especialmente cuando trabajamos con entidades como libros, calificaciones y usuarios. Este proceso puede parecer complejo, pero con las herramientas correctas y un poco de ingenio, se puede llevar a cabo de manera efectiva.

¿Cuál es el objetivo principal al generar información a partir de datos?

La clave está en asociar datos entre sí, creando una capa de información que permita obtener análisis valiosos. Por ejemplo, puedes calcular el score total de un libro, el promedio de calificaciones que le ha dado un usuario a sus lecturas y, en el caso de un autor, entender cuál es el score promedio de sus libros.

¿Qué papel juegan las tablas intermedias y las relaciones juntas en SQL?

Cuando trabajamos con bases de datos, muchas veces necesitamos utilizar tablas intermedias para gestionar las relaciones. En el ejemplo de libros y usuarios, la tabla intermedia user_books (usuario_libros) es crucial. Para construir estas relaciones, utilizamos comandos simples del Query Builder, como via table, que finalmente se traduce en un join en SQL.

Código Ejemplo: Utilizando via table en SQL:

public function getVotes() {
    return $this->hasMany( BookScore::class, where('book_id', $this->book_id))->all();
}

¿Cómo calcular el promedio de calificaciones de un libro?

El objetivo es mostrar el promedio de calificaciones para cada libro, que ofrece una visión clara de cómo lo evalúan los usuarios. A continuación, se ilustra cómo realizar este cálculo dentro de un modelo:

Código Ejemplo: Función para obtener el promedio de un libro:

public function getScore(): float {
    $sum = 0;
    $i = 0;
    
    foreach ($this->votes as $vote) {
        $i++;
        $sum += $vote->score;
    }
    
    return ($i === 0) ? 0 : $sum / $i;
}

¿Cómo se muestra esta información a los usuarios?

Para proporcionar una mejor experiencia al usuario, es necesario informar tanto sobre el promedio de calificaciones como sobre el número de votos que ha recibido un libro. Esto se puede lograr de manera atractiva utilizando una notación clara y legible.

¿Cómo calcular el promedio de calificaciones que un usuario ha dado?

No solo es interesante saber el promedio de un libro, sino también comprender la tendencia de calificaciones individuales de cada usuario. Esto permite analizar qué tan exigente es un lector y cómo interactúa con diferentes obras.

Código Ejemplo: Calcular el promedio de calificaciones de un usuario:

public function getVotesAverage(): string {
    $sum = 0;
    $i = 0;
    
    foreach ($this->votes as $vote) {
        $i++;
        $sum += $vote->score;
    }

    return ($i === 0) ? 'Sin votos' : sprintf("%.2f", $sum / $i) . " de $i votos";
}

La importancia de la simplicidad y modularidad en el código

Uno de los principios clave al trabajar con datos e información es mantener la simplicidad y modularidad del código. Es más eficiente primero obtener los datos y luego realizar operaciones necesarias sobre ellos, en lugar de rehacer el proceso.

Así, no solo obtienes información valiosa, sino que también mantienes el código limpio y escalable para futuras necesidades. Con estos ejercicios prácticos, puedes ver lo sencillo que es desgranar y utilizar la información gracias a funciones bien definidas. ¡Continúa explorando esta fascinante área del desarrollo y la gestión de datos!