What are the potential benefits of storing ratings in a separate table from the images in a PHP application?

Storing ratings in a separate table from the images in a PHP application allows for better organization of data, easier retrieval and manipulation of ratings data, and improved scalability and performance. It also helps to maintain data integrity and avoid redundancy by separating concerns between image data and rating data.

// Create a separate table for ratings
CREATE TABLE ratings (
    id INT AUTO_INCREMENT PRIMARY KEY,
    image_id INT,
    rating INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

// Insert a rating for a specific image
$image_id = 1;
$rating = 5;

$query = "INSERT INTO ratings (image_id, rating) VALUES (:image_id, :rating)";
$stmt = $pdo->prepare($query);
$stmt->bindParam(':image_id', $image_id, PDO::PARAM_INT);
$stmt->bindParam(':rating', $rating, PDO::PARAM_INT);
$stmt->execute();