Skip to content

数据库案例学习

这里从开源项目中探究如何建数据库

idoubi 的 aicover

sql
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    email VARCHAR(255) UNIQUE NOT NULL,
    nickname VARCHAR(255),
    avatar_url VARCHAR(255),
    created_at timestamptz,
    uuid UUID UNIQUE NOT NULL
);

CREATE TABLE covers (
    id SERIAL PRIMARY KEY,
    user_email VARCHAR(255) NOT NULL,
    img_description TEXT,
    img_size VARCHAR(255),
    img_url TEXT,
    llm_name VARCHAR(100),
    llm_params JSON,
    created_at timestamptz,
    uuid UUID UNIQUE NOT NULL,
    status INT,
    is_recommended BOOLEAN,
    user_uuid UUID,
    is_uploaded BOOLEAN,
    is_awesome BOOLEAN,
    is_brand BOOLEAN
);

CREATE TABLE orders (
    id SERIAL PRIMARY KEY,
    order_no VARCHAR(255) UNIQUE NOT NULL,
    created_at timestamptz,
    user_email VARCHAR(255) NOT NULL,
    amount INT NOT NULL,
    plan VARCHAR(50),
    expired_at timestamptz,
    order_status SMALLINT NOT NULL,
    paied_at timestamptz,
    stripe_session_id VARCHAR(255),
    credits INT NOT NULL,
    currency VARCHAR(50),
    user_uuid UUID
);

ALTER TABLE covers
ADD CONSTRAINT fk_user_email
FOREIGN KEY (user_email)
REFERENCES users(email)
ON DELETE CASCADE;