为每个帖子动态添加列到WordPress自定义数据库表

时间:2014-08-15 19:34:51

标签: php mysql sql database wordpress

基本上我已经构建了一个表单,允许用户输入他们每周观看我们某个视频的日期/时间。我将视频设置为名为“主题”的自定义帖子类型,每个主题的表单中都有一行,每周的每一天都有列,每天的时间选择器。我已经在自定义帖子类型中动态提供表单中的行,以便每个主题都存在一行,每次添加主题时都会添加一行......这就是问题所在的地方,因为我需要找到一种以相同方式动态化mysql表的方法,我需要动态地为每个新主题创建一组新的列。

所以鉴于这些信息,我已经跟着this tutorial,以便通过插件通过WordPress API动态创建我的表。我不清楚的是我如何操纵下面的声明部分,让它为我的自定义帖子类型的“主题”中的每个帖子创建一个新列。我想如果我能够弄明白这一点,我也能够理清其余部分。

  $sql_create_table = "CREATE TABLE {$wpdb->tracker_entry_submission} (
      theme_id bigint(20) unsigned NOT NULL auto_increment
 ) $charset_collate; ";

1 个答案:

答案 0 :(得分:0)

您尝试执行的操作的Microsoft术语是备用填充字段。在MySQL术语中......您想要查找的模型是Entity Attributt Value或EAV。 EAV是一个包含键,列名,列值的表...这允许行具有不同的列名。做一些关于EAV术语的研究(google!),看看它是否符合你的需要。

* 免责声明 - 当您尝试索引和排序时,EAV不是最具扩展性的问题并且会遇到问题。它最终是一种反模式,但它适用于较小的稀疏数据集。计划如此设置超过一百万行?

一旦你有这样的数据布局,你就会想要将数据“转移”出表格。 Stack Overflow上大量的透视示例......可能是最常见的带有sql标签的问题。