【问题标题】:PHP SQL: Dynamically Creating and Deleting Columns in DatabasePHP SQL:动态创建和删除数据库中的列
【发布时间】:2018-03-04 03:06:43
【问题描述】:

我正在为 WordPress 创建一个轮播/图像滑块插件,但我碰壁了。会有无限量的用户输入,我需要知道如何处理。

我目前有六个静态输入:transition_timeloop_carouselstop_on_hoverreverse_ordernavigation_arrowsshow_pagination,可变数量的信息将来自用户想要使用的图像.所以这可能是从零到无限的任何地方。

我希望能够在 DB 中创建/删除 X 数量的列。

所以一开始会有零张图片,这意味着六列。如果用户添加两个图像,我希望有八列,创建两个。如果用户删除它们,那么我想回到原来的六个。

我猜这是可能的,但这是一个好主意,还是我应该只拥有一定数量的图像?

【问题讨论】:

  • 您应该查看entity value attribute 数据库结构,而不是如何动态创建和删除列。
  • 我会小心使用 EAV。很多事情都可能出错。阅读这些:onetwo。抄送@LawrenceCherone
  • 我不相信我读到的所有内容,如果使用得当,它可以正常工作。否则,您将如何拥有许多具有许多属性和许多值的项目,例如自定义表单,具有动态创建的选择、输入、单选按钮和许多人填写同一个表单的输入?我知道大多数人会做的是 json 编码/序列化它(wordpress)..
  • @LawrenceCherone 对,我同意。对于希望在实体领域具有灵活性的客户,我必须对此进行大量研究,虽然 EAV 看起来很有吸引力,但它会带来一些问题。它最终成为了正确的决定。就像你说的,如果使用得当,它可以正常工作。只是想从知道它的人那里得到意见。干杯。

标签: php sql wordpress


【解决方案1】:

你做错了™。 更改表定义应该是一个例外事件。

使用两张表,一张用于对 Carousel 进行建模,一张用于存储图像信息,然后将它们链接起来。

餐桌轮播:

  • 身份证
  • [此处有更多字段]

表格图片:

  • 身份证
  • carousel_id(引用包含 Carrousel)
  • [更多字段]

【讨论】:

  • 研究关键词:“一对多关系”、“多对多关系”、“外键”、“数据库规范化”
  • 这听起来像是我应该走的路。我想避免创建多个表,但你能做什么呢?
猜你喜欢
  • 2014-11-21
  • 2018-08-27
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
相关资源
最近更新 更多