说, ! s0 J7 I4 F# q# K. H) @) Y( t我有3张表。 , ~2 z' r$ L+ H+ p. s- p. F: `User 包含用户的基本信息。0 U( X# l3 A. s' |2 v" P6 b
SectionA 包含更多关于用户的信息。 ; z5 o; E, x- ]SectionB 还包含更多关于用户的信息。3 H# _" M, w. }6 a% E' k
每个用户只能有一个SectionA和SectionB数据。 " D# E) `( @# d8 Y* a- \我的想法是创建这样的表设计: 1 k9 w* m- R% m* s3 A+ q0 m( tid name section_a_id section_b_id1 matt 1 1问题是,section_a_id并且section_b_id不能自动增加,因为它们不是主键。* Y8 u1 X; S# }! V4 {4 E. Q
因此,我尝试了另一种方法来决定输入id主键User应该是引用section_a_idand6 }6 l M8 J% ~+ _
section_b_id`外键。但我不能这样做,因为mysql只允许引用一个表。6 o' x" O' ]8 a, o
那么我应该如何处理这种情况呢? # h7 S t( a& ^; w8 T# q! G & D$ v* b. B! M: k解决方案: 0 F8 _5 ]3 ]2 K$ q, S
如果是一对一的关系,总是很容易把三个表合并成一个大表。Section表,这些表可以是空的。 ' W! ^' p/ E3 ]7 g) e E对于这种方法,我可以看到一些积极的观点: + c7 J* }" t& E, ~. Q插入、更新和删除操作方便。 ) }6 g, c }6 i( s. W当要使用的连接较少时,数据检索速度更快。/ d O' l& e( I$ ]: L
索引空间较小,因为你在索引一个表而不是三个表的主键。