Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存储三种类型位的最佳方法?_C#_Asp.net_Sql Server_Database_Sqlite - Fatal编程技术网

C# 存储三种类型位的最佳方法?

C# 存储三种类型位的最佳方法?,c#,asp.net,sql-server,database,sqlite,C#,Asp.net,Sql Server,Database,Sqlite,存储和查询三种不同类型信息的最佳方式是什么 例如: 是/否/无评论 我需要将这些数据存储为整数吗?(例如,1、2、3)或否 我将对本地数据使用sqlite,并定期将其与mssql服务器同步。您可以使用位字段,并在mssql数据库中将是/否/否注释为真/假/空,但是sqlite没有特殊的布尔字段,您需要使用整数字段。我的建议是在sqlite中使用1/0/null。为了“按书”进行操作,您应该有这样一个“响应”表: +--------+----------------+ | id | nam

存储和查询三种不同类型信息的最佳方式是什么

例如:

是/否/无评论

我需要将这些数据存储为整数吗?(例如,1、2、3)或否


我将对本地数据使用sqlite,并定期将其与mssql服务器同步。

您可以使用位字段,并在mssql数据库中将是/否/否注释为真/假/空,但是sqlite没有特殊的布尔字段,您需要使用整数字段。我的建议是在sqlite中使用1/0/null。

为了“按书”进行操作,您应该有这样一个“响应”表:

+--------+----------------+
| id     | name           |
+--------+----------------+
| 0      | yes            |
| 1      | no             |
| 2      | no comment     |
+--------+----------------+
并在需要的地方使用id(可能是整数)作为外键

这样,您的RDBMS可以保持引用完整性

但实际上,大多数人使用单个字符来表示,如
'Y'
'N'
'C'


此外,没有什么可以阻止您使用单个字符作为“responses”表的键,尽管根据我的经验,没有多少人选择此解决方案。

可空位类型可以有三个值:0、1或NULL。使用“NULL”作为数据是安全的吗?它在选择数据时有用吗?不,“null”在SQL中通常意味着“未知”。对于三态boolian(是,否,未指定),null完全可以。可以选择值为NULL的所有行(不要使用等号)。您不能像使用实际值那样在另一个表上进行联接。但您当然可以在没有注释的情况下查询所有行。