回答

收藏

如何在MySQL中设计类别和子类别?

技术问答 技术问答 237 人阅读 | 0 人回复 | 2023-09-13

我有一个类别列表和与每个类别关联的子类别数量。假设类别表称为Cat,然后在其中有热类别和冷类别,又有另一个表称为subcats,然后有以下内容:" N. n" {5 V- n* g
Cat: :1 c: M# L* {  Z3 ^
ID Name" [. k7 W1 d! \. x2 h  `0 k1 n/ ~
1 Hot
' r  j* a; o) p 2 Cold/ w  [3 m3 b' w" O+ g0 S6 l: e" z
SubCats :8 ?: Z( o! k# J& ]# c
SubCatID   CATID   Name
. x, {7 q% e4 R7 [  1       1        soup * R  v; r* U  ~, q  _, k
  2       1       rice
7 K; z! x/ N8 [- y  3       1       pizza   X. a% ?, V  h. Q' |4 g
  4       2       salad ! O  t2 r3 H& e+ g
  5       2       fruit  p# p9 i! {9 N5 w
我应该在设计中考虑性能,您如何评价我的设计?有没有更好的解决方案?
- e4 |8 ?  s0 A# T(类别仅是示例-我有很多类别和子类别。)3 I- e& g4 g1 X/ c5 r
                8 u7 ]( M5 s( C% t. M9 O* w# c
解决方案:0 N# J+ v' M! b
                - K" l# d* ^/ y4 |$ O
, }7 g) S( [$ `, j" H

6 V; D4 K. J3 a: h1 E5 f                您可以将所有内容都放在一个表中,类别。然后有一列作为parentID。如果parentID =
$ E( F3 n& {: B+ N& Z4 R4 v1 K% m' w- n0,它是一个主类别,如果它是另一个ID,则它是一个子类别?此结构将支持子子类别…不确定是否对您有帮助。* h, d: Y4 d  ~4 Q
字段示例:* L8 p9 Q: ]- T% y3 p% Q5 g
Table: category" W- T$ E4 T7 r! M! ?. m  _- S
categoryID. l+ D. d" P4 O9 c6 [
parentID
" c7 @+ E/ q/ ?% j3 A4 Oname
9 J' D% p/ G( X2 T# Y; x示例数据:
; b$ p+ d! e' ^& IcategoryID : 1
; U0 @8 W) T, p9 Y4 @4 @- u2 ^0 w# pparentID : 08 t! Z! K7 e+ q: r0 r& F
name : hot
' a! p  E/ M5 j# r4 H3 r+ BcategoryID : 2' a# E) h/ R, V; O6 ?
parentID : 0
% |$ R2 `1 m' n5 F# Oname: cold, z5 C- c. A9 o
categoryID : 3
; ^8 r3 j& Z0 p; U/ L  _: g" L, Y8 UparentID : 2
4 |5 x" N" v. q  nname : a soup that's cold! q' c4 z: `; y- Z& \. c2 G
categoryID : 4
- h* ~, w9 o* mparentID: 19 Z& r- D+ _+ N: K% g
name: a soup that's hot
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则