【发布时间】:2017-04-27 22:52:58
【问题描述】:
我有简单的注册表单,但有 3 个复选框,例如:
Name: [ ]
Email: [ ]
Pass: [ ]
What do you like at free time?
Reading: [ ]
Travelling: [ ]
Sport: [ ]
如上例所示,您会看到“您在空闲时间喜欢什么?”有 3 个复选框。有多个选项,人们可以只选中阅读复选框或阅读和旅行或所有复选框等。
如何在数据库中正确存储?
例如,如果我将在下面创建Users 表:
CREATE TABLE #User
(
Id INT IDENTITY,
Name NVARCHAR(60),
Email NVARCHAR(60),
Password NVARCHAR(60),
FreeTime INT
)
我只能从复选框中插入 1 个选项。逗号分隔的解决方案是不好的做法。
我不知道在用户表中插入多个具有相同UserId 的记录以将所有复选框值作为单独的行插入是否是一种好习惯?
或者创建新表FreeTime 之类的更好方法?
CREATE TABLE #FreeTime
(
Id INT IDENTITY,
UserId INT,
Description NVARCHAR(60)
)
【问题讨论】:
-
创建一个单独的表和链接表,这样你就可以简单地在 FreeTime 表中插入新行,你可以在不改变架构的情况下链接东西
-
逗号分隔值不好的做法。更好的方法是,就像您已经说过的那样,创建另一个表空闲时间来存储每个用户分隔的每个值。
标签: sql sql-server database tsql checkbox