让用户向您的数据库添加新的列和表是否可以?

sin*_*inθ 2 mysql database-design

我基本上是在制作一个数据库数据库。管理用户可以进入并点击“创建数据库”(基本上是一个表)并设置列类型和列数。然后其他用户可以进入并通过界面向数据库添加条目。关键是要为公司内部的信息创建一个管理系统。如在,管理员可以创建一个“雇佣”数据库来存储具有正确列等的工人。

我认为我永远不应该让用户创建新表(这就是“数据库”)甚至列。我创建了两个表来存储从用户角度定义数据库/表应该是什么的信息,以及另外两个表来存储这些条目的条目和数据。

我觉得有点像我在重新发明轮子。是否可以让用户添加新表。

Mik*_*ll' 7

数据库设计既是一门艺术,也是一门科学。最终用户通常既不了解艺术也不了解科学。我不允许最终用户添加表或更改表;我从来没有在任何允许这样的地方工作过。

最终用户几乎总是会构建看起来像 Word 文档或 Excel 电子表格的东西。他们很少会构建看起来像数据库的东西。

关键是要为公司内部的信息创建一个管理系统。

这就是数据库的用途。如果您的数据库基本上是一个表,正如您所说的那样,我认为您的用户最好使用数据库。

作为数据库设计人员,我发现这些功能是必不可少的。我会给你 SQL 关键字和概念;如果您愿意,可以使用 Google 查找它们。

  • 检查约束
  • 授予和撤销
  • 可更新的视图
  • 物化视图
  • 存储过程
  • 外键约束
  • “异域”索引(基于函数的索引、部分索引、聚集索引)
  • PRIMARY KEY 和 UNIQUE 约束

如果您不打算提供类似的功能,您应该仔细考虑可能会发生什么。如果您不提供类似于 GRANT 和 REVOKE 的内容,那么迟早有人会删除表或删除他们不应该触及的行。

如果你要提供类似的功能,你重新发明轮子。