sql - 在一列中存储不同的数据类型以减少表数

标签 sql sql-server tsql database-design azure-sql-database

我目前正在开展一个项目,我正在 Azure SQL 数据库中重新创建一个 MS SQL Server 数据库。我已经获得了当前模式(虽然不是实际的列数据类型)并且我遇到了这个:

Question (QuestionID, QuestionDescription, UnitOfMeasure, SQLDataType)
QuestionAnswer (QuestionID, AnswerID, Answer, SQLDataType, UnitOfMeasure)

因此,数据库包含各种问题,每个问题都用不同类型的数据(整数、文本、日期等)来回答/测量,所有答案都与一个列一起存储,该列标识了所使用的数据类型“答案”栏。

我想知道这是否是一种常见做法以及如何实现? (一列中的多种类型的数据)。另一种选择显然是将所有问题放在一起,但将各种答案分成不同的表格,但我可以看到 30 多个不同的问题会变得多么麻烦。

最佳答案

这是我们在生产中用于解决同一类型问题的模式。是的,它有效 - 您只需确保每个 Answer 实际上都可以转换为给定的 SQLDataType。我们在插入/更新时执行此操作。

关于sql - 在一列中存储不同的数据类型以减少表数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40289472/

相关文章:

c# - 建立一个非顺序的数字列表(从一个大范围)

mysql - 用于排序排行榜的 SQL 查询

sql-server - sql - 显示我可以支付的所有分期付款

sql - 如何根据第一个查询运行第二个查询?

sql - 使用 SQL Profiler 分析 Entity Framework 查询

sql - 如何使用 ADO.NET Entity Framework 在多个数据库上并行执行 SQL 查询并返回组合结果

mysql - 如何将 DISTINCT 与 JOIN 结合使用?

sql-server - 创建分区在 Azure Sql 服务器中不起作用

SQL 沿列移动数据

安装 WampServer 2 后 mySQL 未启动