What are some best practices for setting up and managing forums in PHP to ensure efficient data storage and retrieval?

Issue: Efficient data storage and retrieval in forums can be achieved by properly structuring the database tables, using indexes, and optimizing queries.

// Create a table for storing forum posts
CREATE TABLE forum_posts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    content TEXT,
    user_id INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX user_id_index (user_id),
    INDEX created_at_index (created_at)
);

// Retrieve forum posts for a specific user
$user_id = 1;
$query = "SELECT * FROM forum_posts WHERE user_id = :user_id ORDER BY created_at DESC";
$stmt = $pdo->prepare($query);
$stmt->execute(['user_id' => $user_id]);
$posts = $stmt->fetchAll();