MySQL: 如何设计 table 转换(例如衣服尺码)?
MySQL: How to design table for conversion (e.g. dress sizes)?
美国的“2”码连衣裙在英国是“6”码。
如何在 table(或 table 系列)中建模,以便将美国 2 与英国 6 相关联?一种可能的方法是使用这样的列执行 table:
- id (PK)
- 英国
- 我们
设计的问题是我无法轻松获得给定的 2 个字母国家/地区代码(例如 "us")的所有着装尺码列表,因为该信息是列名称。
另外,我想知道一件衣服的尺码是大于还是小于另一件。我不能依靠数值的高低来确定这一点,因为例如,俄罗斯的尺寸“56”小于其尺寸“24”。参见:
您的网格代表一种尺码 类别(连衣裙 - 存在其他尺码类别,如鞋子、牛仔裤、胸罩等。)
然后是您的网格中的列,我们可以将其称为 regions 一个与 USA、UK/AU/NZ 等完美匹配的名称,但也包括 S-M-L,其中不是真正的 "region".
然后您的网格中的行代表给定类别的每个大小。
你的网格中终于有了单元格,我们可以调用区域大小。
制作四张表:
categories
id | category
---+------------
C1 | dress sizes
C2 | shoe sizes
regions
id | region
---+--------------
R1 | S, M, L, etc.
R2 | USA
R3 | UK, AU, NZ
sizes
id | id_category | sortkey
---+-------------+--------
S1 | C1 | 1
S2 | C1 | 2
S3 | C1 | 3
regional_sizes
id | sizes | id_region | size
-----+-------------------+-----
RS1 | S1 | R1 | S
RS2 | S1 | R2 | 2
RS3 | S1 | R3 | 6
RS4 | S2 | R1 | S
RS5 | S2 | R2 | 4
RS5 | S2 | R3 | 8
美国的“2”码连衣裙在英国是“6”码。
如何在 table(或 table 系列)中建模,以便将美国 2 与英国 6 相关联?一种可能的方法是使用这样的列执行 table:
- id (PK)
- 英国
- 我们
设计的问题是我无法轻松获得给定的 2 个字母国家/地区代码(例如 "us")的所有着装尺码列表,因为该信息是列名称。
另外,我想知道一件衣服的尺码是大于还是小于另一件。我不能依靠数值的高低来确定这一点,因为例如,俄罗斯的尺寸“56”小于其尺寸“24”。参见:
您的网格代表一种尺码 类别(连衣裙 - 存在其他尺码类别,如鞋子、牛仔裤、胸罩等。)
然后是您的网格中的列,我们可以将其称为 regions 一个与 USA、UK/AU/NZ 等完美匹配的名称,但也包括 S-M-L,其中不是真正的 "region".
然后您的网格中的行代表给定类别的每个大小。
你的网格中终于有了单元格,我们可以调用区域大小。
制作四张表:
categories id | category ---+------------ C1 | dress sizes C2 | shoe sizes
regions id | region ---+-------------- R1 | S, M, L, etc. R2 | USA R3 | UK, AU, NZ
sizes id | id_category | sortkey ---+-------------+-------- S1 | C1 | 1 S2 | C1 | 2 S3 | C1 | 3
regional_sizes id | sizes | id_region | size -----+-------------------+----- RS1 | S1 | R1 | S RS2 | S1 | R2 | 2 RS3 | S1 | R3 | 6 RS4 | S2 | R1 | S RS5 | S2 | R2 | 4 RS5 | S2 | R3 | 8