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

标签 database-design

我和我的 friend 争论过 DB 模式。

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

所以,我建议使用以下表格模式 -> [Key]、[Text]、[FileName]

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

但是我的 friend ,
他坚持“为什么不在插入数据时创建和删除'TABLE'?”

他的表模式是 ->
[键], [文本]

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

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

我不能同意这个想法。
根据我的经验,我觉得 DB 模式是错误的...
但我无法解释和说服我的 friend 。

请帮我。
我错了吗?或者我怎样才能说服我的 friend ?

最佳答案

总的来说,我同意你的看法。恕我直言,更改数据库架构通常是一种罕见的操作,最好仅在软件更新时。我知道这是非常严格的和“非 NoSQL”,但毕竟这是一个传统的关系数据库:)。

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

此外,如果您以后想使用某种 O/R-mapper 或其他工具,让您的表架构相当静态通常会有所帮助。

关于database-design - 为什么不在插入数据时创建和删除 'TABLE'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9207256/

相关文章:

Mysql 与 MongoDB 和 DynamoDB - 用户跟踪项目

应用程序之间的 Django 关系 : How to keep apps separate?

mysql - 如何在mysql中保存一棵树?

php - 数据库中的多个联接

php - 图结构数据库和 Php

mysql - 多日期时间列索引的最佳数据库解决方案

MySQL数据库设计

database - 美国州/县/市/zip 数据库中的数据限制?

sql - Rails - 多个模型之间的公共(public)字段/报告数据 - STI、hstore 或拆分表?

database - IBM-Watson 云产品中输入要求的数据格式是什么?