动态数据库系统与PHP和MySQL

时间:2014-01-28 22:51:37

标签: php mysql

请使用mysql和php为组创建数据库系统。我遇到了一些挑战,这些是

1.我想使数据库系统动态化 - 因此使用该系统的管理员可以从前端向特定表添加列,而无需了解有关mysql和php的信息。

2.另外,我希望不了解mysql和php的管理员能够通过前端(PHP页面)将数据库添加到数据库中。

3.由于(1和2)中的上述问题,如何使管理员添加的列出现在数据库的表单(php页面)上,如何检查表单上的错误。< / p>

请举例说明我所说的内容。

a。如果没有技术团队的帮助,我该怎样做才能让客户在数据库中的现有表中添加列?

b。如果没有技术团队的帮助,我该怎么做才能让客户将表添加到现有数据库?

c。如何将管理员添加的列输出到表单,并检查表单上的错误(php页面)。

欢迎任何帮助。谢谢你

1 个答案:

答案 0 :(得分:1)

基本上你可以编写ALTER TABLE xxx ADD column VARCHAR(100)之类的查询等,从表单填写所需的值。但是,强烈建议不要这样做。这不仅意味着您的脚本能够执行通常只能由具有管理员权限的(mysql)用户执行的查询,而且它也非常容易受到安全问题的影响。

立即阅读你的问题让我想到一个EAV - like1数据库系统,尽管在像mysql这样的关系数据库系统中使用它是一个备受争议的方案,实际上可以在任何系统上使用...... / p>

我想到的一些问题(大多数要点也适用于EAV)

  • 您将失去任何逻辑结构

    由于任何类型的数据都可以链接到任何类型的实体,因此 - 至少在您的数据库中 - 您的属性(或您的案例中的列)与您的实体(您的案例中的表)之间没有逻辑关系,其他只是出席。

  • 非常非常难以维护

    如果您的表增长,应该将哪些列编入索引?你如何防止某些人无知 - 正如你所说的那样 - 默认情况下 - 在一张桌子上添加200列?这里可以总结出许多其他问题......

  • 限制怎么办?

    您将如何决定允许添加/删除/编辑哪些列?你是如何强迫他们选择合适的柱型?或者当添加一个表时:(coumpound)主键应该是什么?请记住:您的管理员无知。我想这会增加对元表的需求,持有这种信息。您确定要为此编写所有逻辑吗?并且你确定你想要跟踪错误等错误,这些错误最有可能让你的系统像卡片屋一样崩溃吗?

  • 它闻起来像一张excel表......

    没有功能,但仍然。那么为什么不向管理员发送谷歌文档的链接? ;)

不,这听起来像个坏主意......

请发布您的完整用户案例,我确信我们可以考虑更好的解决方案,然后添加列并将表添加到数据库。