update
This commit is contained in:
49
scripts/sql/002_i18n_columns.sql
Normal file
49
scripts/sql/002_i18n_columns.sql
Normal file
@ -0,0 +1,49 @@
|
||||
-- ============================================================================
|
||||
-- 002_i18n_columns.sql
|
||||
-- 方案 A(独立列):把品牌名 / 走秀标题 / 描述 拆分为 en / cn 两列。
|
||||
--
|
||||
-- 设计前提(已用探查脚本核对线上数据):
|
||||
-- * brand.name 多为拉丁名,但 266 个含中文;show_name 形如 "拉丁/中文"(2025 个含中文)。
|
||||
-- * brand_runway.title / description 校验过 han=0,当前全为英文。
|
||||
-- * 排序 / A-Z 索引 / 关键词搜索 统一基于 name_en(拉丁),中文品牌(name_en 为空)归入 OTHER 桶。
|
||||
--
|
||||
-- 回填策略:
|
||||
-- name_en = name 去掉中文后的部分;若 name 全中文则取 show_name 斜杠前部分。
|
||||
-- name_cn = show_name 斜杠后含中文的部分;否则 show_name 本身(含中文);否则 name(含中文)。
|
||||
-- title_en / description_en = 原 title / description;title_cn / description_cn = ''(当前无中文)。
|
||||
--
|
||||
-- 旧列 name / show_name / title / description 保留不删,作为回退与对比;
|
||||
-- 代码全部改用 *_en / *_cn 后,可择机在后续迁移中 DROP。
|
||||
-- ============================================================================
|
||||
|
||||
ALTER TABLE brand
|
||||
ADD COLUMN name_en VARCHAR(255) NOT NULL DEFAULT '' AFTER name,
|
||||
ADD COLUMN name_cn VARCHAR(255) NOT NULL DEFAULT '' AFTER name_en;
|
||||
|
||||
ALTER TABLE brand_runway
|
||||
ADD COLUMN title_en VARCHAR(255) NOT NULL DEFAULT '' AFTER title,
|
||||
ADD COLUMN title_cn VARCHAR(255) NOT NULL DEFAULT '' AFTER title_en,
|
||||
ADD COLUMN description_en VARCHAR(1024) NOT NULL DEFAULT '' AFTER description,
|
||||
ADD COLUMN description_cn VARCHAR(1024) NOT NULL DEFAULT '' AFTER description_en;
|
||||
|
||||
-- 回填品牌名:拆拉丁 / 中文
|
||||
UPDATE brand SET
|
||||
name_en = CASE
|
||||
WHEN TRIM(REGEXP_REPLACE(name, '[一-鿿]', '')) <> '' THEN TRIM(REGEXP_REPLACE(name, '[一-鿿]', ''))
|
||||
WHEN show_name LIKE '%/%' THEN TRIM(SUBSTRING_INDEX(show_name, '/', 1))
|
||||
ELSE ''
|
||||
END,
|
||||
name_cn = CASE
|
||||
WHEN show_name LIKE '%/%' AND SUBSTRING_INDEX(show_name, '/', -1) REGEXP '[一-鿿]'
|
||||
THEN TRIM(SUBSTRING_INDEX(show_name, '/', -1))
|
||||
WHEN show_name REGEXP '[一-鿿]' THEN TRIM(show_name)
|
||||
WHEN name REGEXP '[一-鿿]' THEN TRIM(name)
|
||||
ELSE ''
|
||||
END;
|
||||
|
||||
-- 回填走秀:当前 title / description 全为英文,直接进 *_en
|
||||
UPDATE brand_runway SET
|
||||
title_en = title,
|
||||
description_en = description,
|
||||
title_cn = '',
|
||||
description_cn = '';
|
||||
8
scripts/sql/003_drop_brand_alias.sql
Normal file
8
scripts/sql/003_drop_brand_alias.sql
Normal file
@ -0,0 +1,8 @@
|
||||
-- 003_drop_brand_alias.sql
|
||||
-- 删除 brand_alias 孤儿表。
|
||||
-- 背景:i18n 方案 A 落地后,brand.name_cn / name_en 已成为品牌名权威来源;
|
||||
-- brand_alias 全代码库零引用,且 99.9% 中文记录与 brand.name_cn 完全重复,
|
||||
-- 保留它只会成为名字的第二来源、后期悄然分叉。故删除。
|
||||
-- 注意:本文件为审阅底稿,实际执行由 scripts/i18n/drop_alias/main.go 驱动(无 mysql 客户端环境)。
|
||||
|
||||
DROP TABLE IF EXISTS brand_alias;
|
||||
Reference in New Issue
Block a user