C# 存储三种类型位的最佳方法?
存储和查询三种不同类型信息的最佳方式是什么 例如: 是/否/无评论 我需要将这些数据存储为整数吗?(例如,1、2、3)或否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
我将对本地数据使用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的所有行(不要使用等号)。您不能像使用实际值那样在另一个表上进行联接。但您当然可以在没有注释的情况下查询所有行。