【问题标题】:Insert date into multiple table or create one table with more column and store at once将日期插入多个表或创建一个具有更多列的表并一次存储
【发布时间】: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


【解决方案1】:

我想不出这样一种情况,即多个彼此之间具有 1:1 关系的表除了增加使用它们的复杂性之外会做任何事情,因为简单的查找变成了连接等。如果你真的不这样做没有重复的信息,一张大表可能更容易处理。如果您的数据在多个用户之间重复,那么您可能应该重新评估您的架构并设置代表不同类型信息的表。

【讨论】:

    猜你喜欢
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2017-10-26
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多