Sql 存储anketing数据的数据库设计
我想做一个网络应用,用户可以用问题创建anketa,其他用户可以用答案填充它。答案可以是不同的类型:文本、数字、日期、查找和其他。Stackoverflow的用户和nick Pepper一起帮助我选择构建数据库的方式 方法是将anketa答案保存为答案表中的行。例如,表格设计:Sql 存储anketing数据的数据库设计,sql,database,Sql,Database,我想做一个网络应用,用户可以用问题创建anketa,其他用户可以用答案填充它。答案可以是不同的类型:文本、数字、日期、查找和其他。Stackoverflow的用户和nick Pepper一起帮助我选择构建数据库的方式 方法是将anketa答案保存为答案表中的行。例如,表格设计: TABLE AnketaField Id uniqueidentifier PK AnketaId uniqueidentifier FK to anketa table Name varchar
TABLE AnketaField
Id uniqueidentifier PK
AnketaId uniqueidentifier FK to anketa table
Name varchar field name
Type varchar field type (string, int, datetime)
TABLE AnketaFieldValue
Id uniqueidentifier PK
AnketaFieldId uniqueidentifier FK to AnketaField table
Value varchar value in string (cast to true type if need)
我认为,如果我使用这种设计,在选择数据、制作报告时会出现问题。有很多人加入。
也许有人知道另一种方法,或者如何构建这种类型的系统,我指的是不同的属性数计数
我会很感激的!谢谢…这实际上是一个非常小的连接数。有了正确的索引,就性能而言,您应该不会有任何问题。如果要验证这一点,请继续在DBMS中创建这些表,然后最好使用脚本生成大量数据(数百万条记录),然后运行一些查询并查看结果。如果您遇到性能问题,请尝试并找到改进设计索引、分区等的方法。好的,但我无法理解,如果我要选择所有anketa数据,其中用户输入年龄30,性别=‘男性’,我需要使用sub-select?我真的很困惑