首页 > 解决方案 > 在 SQL 中存储复选框的最佳方法是什么

问题描述

来自新手的你好社区;

我在这里没有找到类似的搜索功能,所以我希望这不是一个愚蠢的问题。(对不起我的英语不好)。

我计划做一个带有复选框的清单(我认为超过 30 个)。我现在正在考虑如何将状态(检查或未检查)存储到我的 SQL 数据库中并读出。

计划A:对于每个复选框,我将在数据库中放置一个列,这听起来很简单,但我认为在性能方面必须有更好的方法

计划 B:就像单个列中的二进制代码 - 像 00100 - 意味着只有第 3 个 Checkbox 是选中的 Checkbox。对我来说更有意义,但让我觉得很难编码,尤其是在再次从 SQL 中读取这些复选框列表的情况下,例如


if (00100 == 00010) checkbox2.checked;
if (00100 == 00100) checkbox3.checked;

我希望你能帮助一个 C# 新手,并给我一些其他的解决方案想法。

谢谢所有来自奥地利的问候

标签: sqlcheckboxdatabase-design

解决方案


所以,这里有很多东西要解压。基本上,您是在问如何构建数据库表。

恕我直言,B计划不是您想走的路。对于将来试图理解它的人来说,这将是相当混乱的。关于表格,这取决于您的清单。

A计划太静态了。该列表会改变(增长还是缩小)?当您谈论存储支票时,您正在存储响应。这就引出了一个问题,您将如何存储实际问题?

我可能会创建两个单独的表,一个用于问题,另一个用于响应。

从您的角度来看,这可能看起来有点过火,但它允许您随着时间的推移更改您的清单。

建模方面,我的问题表可能如下所示:

表:问题列:内容、顺序

表:响应列:question_id、user_id、checked:boolean


推荐阅读