Database 是否应该动态创建表?

Database 是否应该动态创建表?,database,database-design,Database,Database Design,我正在为收集者制作一个应用程序,用户将上传他们想要收集的物品列表 例如,有人想收集鲜花,并上传了他想收集的一些鲜花的列表,可能如下所示: Rose, Chrystanthemums, Narcissus 然后,他们可以选择自己拥有的,并朝着自己的目标努力 当然,用户可以上传各种不同的列表,这就提出了如何保存和访问这些数据的问题 我想到的一种方法是每次用户上传列表时动态创建一个表,但在查找列表时,这是一种普遍不赞成的做法,人们通常会建议其他替代方法。然而,对于我的处境,我想不出一个替代方案 关于

我正在为收集者制作一个应用程序,用户将上传他们想要收集的物品列表

例如,有人想收集鲜花,并上传了他想收集的一些鲜花的列表,可能如下所示:

Rose, Chrystanthemums, Narcissus
然后,他们可以选择自己拥有的,并朝着自己的目标努力

当然,用户可以上传各种不同的列表,这就提出了如何保存和访问这些数据的问题

我想到的一种方法是每次用户上传列表时动态创建一个表,但在查找列表时,这是一种普遍不赞成的做法,人们通常会建议其他替代方法。然而,对于我的处境,我想不出一个替代方案

关于DBA堆栈交换的问题,回答是,在少数情况下,这是一种好的做法

我的案子就是其中之一吗? 我应该如何着手设计它

我也知道我没有提供很多关于这个问题的细节,我也没有要求你为我设计这个。我只是想了解一些基本的指导方针或是前进的方向


提前谢谢你

Hello@aMimikyu举一个像您提到的那样简单的例子,动态表并没有什么帮助,相反,动态表可能会降低软件的性能,因为您可以使用一个表来存储用户列表,然后使用表中的一列来标识用户正在保存的列表类型。但在我看来,动态表可能是有用的:如果实体(数据的抽象表示)不能由同一类(模型)在每一种不同类型的输入上进行管理。在这种情况下,可以动态创建模型和表

谢谢你的回答,看来我最终还是要遵循这种方法。这还取决于你要如何查询数据库,如果你要查询列表项,那么这些项应该由表中的一列表示,但是如果您没有查询列表项,您可以序列化用户列表并将其保存为字符串(类似于文档数据库方法)。你应该看看MongoDB,评估它是否适合你的应用。