【发布时间】:2016-09-14 18:18:44
【问题描述】:
我希望将多个复选框值存储到数据库的一个字段中。 (例如 1, 24,56,100)。我想知道如何实现这一点,如果我想在查询中调用变量,PHP 如何从数据库中读取这些值?
基本上我正在创建一个博客应用程序(为了乐趣和体验),我希望用户能够通过复选框更改每篇博客文章的可见性。我知道您可能在想,为什么我不为每篇博文设置一个可见性字段。我理解为什么不建议这样做,但我想不出任何其他方法来做到这一点。再解释一下:我想将此应用程序附加到我已经构建的 CMS 上,基本上我有一个包含博客文章的表格,然后我希望用户能够转到他们网站中的不同页面并添加一个博客。好吧,如果用户想在 3 个不同的页面上使用同一个博客,但只想在每个页面上显示某些帖子,该怎么办。所以这就是我现在很困惑的原因。
【问题讨论】:
-
您要求存储非规范化数据,不建议这样做。如果你想提取关于复选框值的任何信息,这将是一个可以避免的大量工作。
-
在一列中存储多个值是不明智的。而是创建一个包含两列的规范化表 - 帖子 ID 的外键和复选框值。该表中允许重复的帖子 ID。
-
我明白为什么不建议这样做,但我想不出任何其他方法来做到这一点。再解释一下:我想将此应用程序附加到我已经构建的 CMS 上,基本上我有一个包含博客文章的表格,然后我希望用户能够转到他们网站中的不同页面并添加一个博客。好吧,如果用户想在 3 个不同的页面上使用同一个博客,但只想在每个页面上显示某些帖子,该怎么办。所以这就是我现在很困惑的原因。
-
我知道您的问题已经得到解答,但是关于您在上述评论中提到的问题,您可以简单地创建一个以 postID+pageID 作为外键的表,这将保留值帖子,页面,以便您只能在某些页面中显示某些帖子。 (该表不需要有主键,但无论如何您都可以有一个自动增量临时 id 列)。这样您就可以获得帖子/页面的映射。我相信这是 OMG Ponies 和 Michael Berkwoski 在他们的 cmets 中向你推荐的
标签: php mysql denormalized