为什么不在插入数据时创建和删除'TABLE'?

use*_*107 5 database-design

我和我的朋友争论过数据库架构.

我们的应用程序读取一种csv文件,然后将数据(几乎200行)插入表中.有时应用程序需要按文件名删除数据.

所以,我建议下面的表模式 - > [Key],[Text],[FileName]

它能够插入带有文件名的数据,然后按文件名删除数据(从[TABLE]删除,其中filename ='boolaboola').

但我的朋友,他坚持"为什么不插入数据时创建和删除'TABLE'?"

他的表模式是 - > [Key],[Text]

他的想法是[当应用程序读取文件时,应用程序会创建一个名称为文件名的表.然后将数据插入新表中.当我们需要按文件名删除数据时,只需删除表.]

即使我们的表不需要外键.

我无法同意这个想法.根据我的经验,我觉得数据库架构是错误的...但我无法解释和说服我的朋友.

请帮我.我错了吗?或者我怎样才能说服我的朋友?

Arn*_*len 2

总的来说,我同意你的观点。恕我直言,更改数据库模式通常是一项罕见的操作,最好仅在软件更新时进行。我知道这是非常严格且“非 NoSQL”的,但这毕竟是传统的关系数据库:)。

对于更具体的建议,了解您打算如何使用这些数据将有所帮助。将其存储在一个表中(可能是分区的,或者在“文件名”上有一个索引以提高性能,如果这是一个问题的话)更加灵活:它允许您轻松地进行跨多个文件的数据的分析。

此外,如果您稍后想要使用某种 O/R 映射器或其他工具,那么使表模式保持静态通常会有所帮助。