Sql 如何为数据输入创建具有动态列数的表

Sql 如何为数据输入创建具有动态列数的表,sql,sql-server,schema,Sql,Sql Server,Schema,我目前正在进行一个项目,需要根据活动项目的数量保存数据 就像 商店可以有n个可以从管理后端动态添加或减少的项目。每个项目都可以激活或停用。没问题 但是我需要在每个商店的表中管理/保存这些动态n个项目。我无法决定表模式 非常感谢您的帮助。我建议使用中间表建立标准的多对多关系。因此,您将使用3个表: StoresTable:商店列表 ItemsTable:项目列表 StoreItemsTable:stores中的项目列表,每行都有一个指向stores表和items表的外键 希望这能有所帮助。如果

我目前正在进行一个项目,需要根据活动项目的数量保存数据

就像

商店可以有n个可以从管理后端动态添加或减少的项目。每个项目都可以激活或停用。没问题

但是我需要在每个商店的表中管理/保存这些动态n个项目。我无法决定表模式


非常感谢您的帮助。

我建议使用中间表建立标准的多对多关系。因此,您将使用3个表:

  • StoresTable:商店列表
  • ItemsTable:项目列表
  • StoreItemsTable:stores中的项目列表,每行都有一个指向stores表和items表的外键

希望这能有所帮助。

如果你使用不同的方法,你的问题其实并不难解决

一个商店可以有许多商品。基本上Susi的商店有1个商品,但突然她想要2个,你想添加一列。如果她突然想增加2000项,这是非常困难的

最好的方法是使用存储表(包含存储名称、创建日期和主键)和items表。然后可以将项目作为条目添加到表中,并通过stores主键将其链接到store

例如:

Store table:
PK    Name             Owner
1     Sunshine Store   Susi
2     Moonstore        Harald

Item table:
PK    Name     Store_id        Price
1     Candle   1                2.44
2     Table    1               51.44
3     Chair    2                6.55
这允许您将任意数量的商品添加到任何商店。在本例中,Store_id称为外键,因为它将项目链接到商店。然后,您可以使用SQL命令选择项目,例如

 "Select * from ITEMS where Store_id = 1;"
并得到Susi的所有项目作为答案


祝你好运

我认为您可以使用活动列,并将该活动位用于各种目的,因为这对将来的其他事务也很有好处