What are the best practices for database normalization when designing tables for storing user and bid information?

When designing tables for storing user and bid information, it is important to follow the principles of database normalization to avoid data redundancy and ensure data integrity. This can be achieved by breaking down the data into separate tables based on their relationships and reducing data duplication. By organizing the data in a normalized form, it becomes easier to maintain and query the database efficiently.

CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    password VARCHAR(255) NOT NULL
);

CREATE TABLE bids (
    bid_id INT PRIMARY KEY,
    user_id INT,
    amount DECIMAL(10, 2) NOT NULL,
    time_placed TIMESTAMP NOT NULL,
    FOREIGN KEY (user_id) REFERENCES users(user_id)
);