【发布时间】:2021-05-18 01:25:10
【问题描述】:
假设我有几个用户表,即 user_table1、user_table2、user_table3、user_table.....。我创建了这个,因为如果我创建单用户表,它将创建大约 150 列。所以我用更少的列表将它分开。在 user_table1 中,user_id 设置为主键,表的其余部分我将 user_id 设置为外键。
user_table1
-------------------------------------------
| user_id | column1 | column2 | column.....|
-------------------------------------------
| 1 | value 1 | value 2 | value .....|
-------------------------------------------
user_table2
-----------------------------------------------
| user_id(fk) | column1 | column2 | column.....|
-----------------------------------------------
| 1 | value 1 | value 2 | value .....|
-----------------------------------------------
user_table3
-----------------------------------------------
| user_id(fk) | column1 | column2 | column.....|
-----------------------------------------------
------ ----- --------- ----- ------- -----
第一个表通常存储用户注册时的登录详细信息和其他一些值。所以我的问题是注册后,当用户编辑他们的个人资料时(个人资料详细信息值将存储到另一个表中,即 user_table2、user_table3)如何插入到另一个表中?这种方法可以吗,还是我应该创建一个 150 列的表?
【问题讨论】:
-
看看这个问题的答案,然后给出答案:mysql query dynamic update。可能还有另一个答案,但目前尚不清楚您对所有带有
columnX字段的user_tableX表做了什么。 -
一个有 150 列的表听起来很奇怪 - 这是一个规范化的结构吗?
-
是的,再读一遍关于规范化的那一章。
-
(模型先行且彻底。坚持使用存储过程输入数据,通过视图检索限制了考虑架构更改的位置数量。如果以及何时可以确定一组大于其补集的属性集,其中没有设置且不会在超过一半的实体/行中,它可能节省一点空间对所需时间的影响——推迟到你需要消磨时间的时候,估计投资时间和要实现的收益,衡量!)
标签: mysql