在我的项目中,“admin”可以动态创建文本字段(使用jsp + javascript)并输入可以在文本字段中输入数据进行保存。在后端我必须将它们保存在数据库中。 这里的问题是
1)我们如何根据管理员正在创建的文本字段动态创建列。 就像他正在创建5个文本字段然后我们应该在数据库中创建5个列,如果他用10个列我们应该做10列。
我在mysql,jsp,struts,hibernate
中这样做答案 0 :(得分:1)
如果您使用的是关系存储,则会针对变量行而非列进行优化。即。考虑将变量数放在行而不是列中。
我的建议只是有一个标题表+一个详细信息表。
然后标题是(1),细节是多个和变量。然后你需要的只是细节中的4列
detail_id (pk), header_id (fk), detail_item_no, detail_value
和标题
header_id (pk), .. any other items that are in all types...
并为每个标题行添加任意数量的行。如果你需要10,那么detail_item_no从1到10,如果你需要5,那么detail_item_no从1到5
缺点是获取细节的查询稍微复杂一些,因为它涉及简单的连接而不是简单的选择。
OTOH如果你现在只有20列,那么只需创建一个包含该列数的表,并保留未使用的列。