gpt4 book ai didi

php - 用于替代将数组存储在单个 MySQL 字段中的表结构

转载 作者:行者123 更新时间:2023-11-29 14:01:33 25 4
gpt4 key购买 nike

我目前正在使用 PDO PHP 和 MySQL 构建一个汽车预订系统,但正在努力解决如何为用户可能添加到预订中的任何汽车附加服务构建我的表。

我目前有以下表格,它们使用reservation_table将booking_id与car_id链接起来(取自各自的表格):

汽车表:

ID     | car_make | car_name
1 | Ford | Focus
2 | BMW | Z3
3 | Audi | A5

预订表:

booking_ID  | booking_time | total_cost | etc..
125674 | 2013-02-02 | 91.55
887463 | 2013-01-19 | 52.00
209930 | 2013-01-11 | 23.99

预订表:

ID     | booking_ID | car_ID
1 | 125674 | 2
2 | 887463 | 2
3 | 209930 | 1

额外表:

ID     | car_extra     | extra_price
1 | GPS | 22.99
2 | Baby Seat | 12.99
3 | Car Charger | 15.99

最初,我打算使用一系列选定的汽车附加功能在reservation_table中添加一个额外的列,将它们与预订链接起来,如下所示:预订表:

ID     | booking_ID | car_ID | car_extras
1 | 125674 | 2 | [2,3]
2 | 887463 | 2 | [1]
3 | 209930 | 1 | [1,3]

但我读到这是不好的做法。如何构建我的表格,以便将所选汽车的额外 ID(范围可以是用户选择的 0 到 12)分配给特定的预订?

通过创建一个仅将 booking_ID 与 extra_ID 链接起来的新表(这意味着同一预订 ID 的多行)是否可以实现以下功能:

选定的附加表:

ID     | booking_ID | car_extra_ID
1 | 125674 | 2
2 | 125674 | 3
3 | 887463 | 1
4 | 209930 | 1
5 | 209930 | 3

最佳答案

您完全正确:创建每个额外一行的 selected_extras_table 是最好的解决方案。当您查询该表时,您将获得您感兴趣的 booking_ID 中所有额外内容的列表,并且您不需要从单个字段中解析出多个值(例如,“[2,3]” )。让数据库将值分开。您走在正确的道路上。

关于php - 用于替代将数组存储在单个 MySQL 字段中的表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14984178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com