“雪花”(Snowflake)在不同语境下含义不同,最常见的两种是:
下面分别说明,你可以对照自己的场景。
如果你说的是 用雪花算法生成分布式 ID,通常在数据库里只需要“存这个 ID”即可,不需要拆解位段(除非有特殊查询需求)。
CREATE TABLE order_info (
id BIGINT UNSIGNED NOT NULL COMMENT '雪花算法生成的ID',
create_time DATETIME NOT NULL,
PRIMARY KEY (id)
) COMMENT='订单表';
✅ 优点:
可以把雪花 ID 拆成字段(一般不推荐,除非强需求):
CREATE TABLE snowflake_log (
id BIGINT UNSIGNED NOT NULL,
ts BIGINT NOT NULL COMMENT '时间戳部分',
worker_id INT NOT NULL COMMENT '机器ID',
seq INT NOT NULL COMMENT '序列号',
PRIMARY KEY (id)
);
⚠️ 注意:
如果你说的是 数据仓库中的雪花模型,那是维度建模的一种方式。
CREATE TABLE fact_sales (
sales_id BIGINT PRIMARY KEY,
product_id INT,
category_id INT,
customer_id INT,
date_id INT,
amount DECIMAL(10,2)
);
CREATE TABLE dim_product (
product_id INT PRIMARY KEY,
product_name VARCHAR(100),
category_id INT
);
CREATE TABLE dim_category (
category_id INT PRIMARY KEY,
category_name VARCHAR(50),
parent_category_id INT
);
CREATE TABLE dim_customer (
customer_id INT PRIMARY KEY,
customer_name VARCHAR(50),
city_id INT
);
CREATE TABLE dim_city (
city_id INT PRIMARY KEY,
city_name VARCHAR(50),
province_id INT
);
✅ 特点:
| 场景 | 建议 |
|---|---|
| 分布式系统生成 ID | Snowflake 算法 ID |
| 业务表主键 | BIGINT 存完整 ID |
| 数据仓库建模 | 雪花 / 星型按需 |
| 简单 BI 分析 | 星型更好 |
如果你能补充一句:
我可以直接给你一套 可落地的 schema 示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。