如何在数据库中允许和存储子选项

D. *_*out 3 php mysql storage options

我正在为聚会场所制作一个在线预订系统,我的客户希望为他的用户提供某些"套餐".这些包将有"子选项",我不确定如何存储这些.例如,如果一个包是"Balloons",我需要能够在其下存储不同的选项,例如"红色气球","绿色气球"等,或者披萨>大,中小.

当然,我正在使用一个数据库,它目前设置了一个包表和一个预订表.预订表有一列,其中包含引用存储在"packages"表中的记录的包ID.

现在,我认为最好的方法是在约会表中添加另一列,其中包含子选项,格式如下:

packageid:optionid;package2id:option2id
Run Code Online (Sandbox Code Playgroud)

以及包表中具有表单选项的另一列:

1:red,2:blue,3:green //for options with no add'l price
1:large[$20],2:medium[$15],3:small[$10] //for options that change the price
Run Code Online (Sandbox Code Playgroud)

我认为这可行,但我觉得必须有更好的方法来做到这一点.如果有人有任何想法,或者以前做过这样的事情,我会很感激帮助.

Eri*_*c H 7

如果您有可变数量的选项,就像您看到的那样,通常会执行以下操作:

创建一个按ID链接包和选项的表.所以你有你的packagesoptions桌子,然后你会有一个package_options只有(超出它的id和你存储的任何创建/ mod日期时间)a package_idoption_id.

然后你将加入这三个表来获得包的选项.我并不特别喜欢这种方法,但我还没有在关系数据库领域找到更好的方法.

  • 如果我理解正确,您似乎只需要另一个表来关联选项,包和约会.在这种情况下,您将拥有一个表格,其行显示为"appointment_id","package_id"和"option_id".然后,您将加入四个表以获取哪个约会以及哪些子选项.我希望这很清楚.我觉得好像我可能会误解你的问题. (2认同)