mysql - MYSQL中如何根据一定的数字创建表

标签 mysql sql

我正在尝试创建一个数据库,其中有 'n' 个来自 html 的输入,并且根据该数字,条目应进入表列。例如,如果用户选择选项'4'成人与一个 child 一起参加聚会。表中的条目将如下所示

id : 1 | guestid:abc | adult:4 | child:1 |first name : xyz | lastname:xyz | contact: 123 | email: abc@gmail.com |

这里的问题是,虽然我需要保存每个客人数量的详细信息,在本例中为 4,但我认为最明显的方法是在每行中保留递增的成人,其值为 1 但这会导致表中出现大量冗余数据并且很难维护。例如它看起来像这样

id : 1 | guestid:abc | adult:1 | child:1 |first name : xyz | lastname:xyz | contact: 123 | email: abc@gmail.com |

id : 2 | guestid:abc | adult:2 | child:1 |first name : zxy | lastname:zxy | contact: 123 | email: abc@gmail.com |

id : 3| guestid:abc | adult:3 | child:1 |first name : lol | lastname:lol | contact: 123 | email: abc@gmail.com |

事实并非如此,它可以是任何可能的数字4,2 5,1等。设计查询来解决此问题的最佳方法是什么

最佳答案

你想要一个master-detail relationship 。其中公共(public)列/值位于主表中,非重复列/值位于明细表中。

在 Master 中:id、guestid、child、联系人、电子邮件,

详细信息:ID、名字、姓氏

另请查看 normalization

关于mysql - MYSQL中如何根据一定的数字创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45644750/

相关文章:

mysql-为什么这两个查询返回不同的结果

SQL查询表达式的优先顺序

mysql - 连接两个表并计算每个学生的分数总和

mysql - ORDER BY 基于最大行数出现

sql - 对 SQL Server 表进行重复数据删除

Mysql连接字符串值位置-副

php - 如何使用 php 每行显示四个图像并且行可以是任何 no

php - 'get ID of the last updated row in MySQL' 这个技巧是如何工作的?

php - 从多个表中选择多行

sql - ActiveRecord:按组计数