Skip to content

MySQL table naming conventions play a pivotal role in ensuring that your database schema remains well-organized, readable, and manageable. A consistent naming strategy not only enhances readability but also facilitates better database maintenance and scalability. With the understanding of their benefits, let’s explore specific best practices and common approaches for creating clear and consistent MySQL table names.

Use descriptive names

Always opt for descriptive and clear table names that accurately reflect the data contained within. Prefer full words over abbreviations to avoid ambiguity. For example, customer is preferable to cust, and inventory is better than inv.

CREATE TABLE customer (
    customer_id INT AUTO_INCREMENT,
    name VARCHAR(255),
    email VARCHAR(255),
    PRIMARY KEY (customer_id)
);

Use singular names

Adopt singular names for your tables since each row represents a single entity. This approach simplifies understanding and working with your data schema.

CREATE TABLE employee (
    employee_id INT AUTO_INCREMENT,
    first_name VARCHAR(255),
    last_name VARCHAR(255),
    PRIMARY KEY (employee_id)
);

Use lowercase with underscores

To maintain platform consistency and avoid case sensitivity issues, write your table names in lowercase and use underscores to separate words. This convention enhances readability and ensures compatibility across different systems.

CREATE TABLE order_details (
    order_id INT,
    product_id INT,
    quantity INT
);

Avoid reserved words

Steer clear of MySQL reserved words for your table names. If unavoidable, enclose them in backticks. However, it’s generally better to opt for alternative terminology to prevent confusion and potential syntax errors.

CREATE TABLE `order` (  -- Opting for an alternative name is advisable
    order_id INT AUTO_INCREMENT,
    order_date DATE,
    PRIMARY KEY (order_id)
);

How to prefix tables in MySQL?

When managing multiple applications within the same database or organizing tables into logical groups, consider prefixing your tables. Choose a concise, relevant prefix and separate it from the table name with an underscore to maintain clarity and organization.

CREATE TABLE wp_posts (
    post_id INT AUTO_INCREMENT,
    title VARCHAR(255),
    content TEXT,
    PRIMARY KEY (post_id)
);

By adhering to these naming conventions, you ensure that your database remains organized and intuitive, significantly easing management and scaling efforts.

Written by

Robert Cooper avatar

Robert Cooper

Senior Engineer at Basedash

Robert Cooper is a senior engineer at Basedash who builds full-stack product systems across SQL data infrastructure, APIs, and frontend architecture. His work focuses on application performance, developer velocity, and reliable self-hosted workflows that make data operations easier for teams at scale.

View full author profile →

Looking for an AI-native BI tool?

Basedash lets you build charts, dashboards, and reports in seconds using all your data.