php - 允许用户从我的数据库构建 View 并编辑这些字段

标签 php mysql database-design

我正在构建一个站点,其中包含用作各种信息容器的“面板”。我已将其设置为可编辑面板,这对于仅包含文本的面板来说很简单。为此,我只是从数据库中获取内容并将其包装在文本区域而不是 <p> 中。标签。然而,对于包含表格 View 的面板,这被证明是一项更困难的任务。

首先,我无法让网站管理员选择给定表格中的信息(例如,如果管理员想添加一个面板 View 来显示每个成员的名字、姓氏和照片,他们可以从我数据库中的那些列中选择)。我想出了几种方法来做到这一点,但每种方法都有自己的一系列问题。

我尝试使用 INFORMATION_SCHEMA 表生成一个表,其中包含用户可以选择的可能表和列。但是当涉及到使用 PDO 构建查询时,我遇到了问题。例如,对于准备好的语句,您不能为架构使用变量。

我也考虑过使用 MySQL View ,但我似乎也不知道该怎么做。

我的第二个问题是允许管理员直接向表中添加行。现在所有添加行模板所做的就是创建一个在每一列中都有一个文本字段的行。这对于纯文本选项(如名字)很有用,但对于图片之类的东西,文本字段显然不起作用。我应该创建一个包含此元数据的表还是在 PHP 中执行检查?如果是后者,我怎么知道列需要什么输入类型?

我认为我的主要问题是我试图通过一次设计更改(或一次不专注于一个问题)来解决太多问题。这让我变得非常慌乱和困惑。非常感谢帮助,如果您需要更多信息,例如我的数据库表当前的设置方式,我将提供 ERD。

编辑:我只是想说清楚,我不想让用户实际操作数据库中的表,而是选择现有表中显示的信息给定的面板。

最佳答案

为用户自由查询数据库的能力编写代码存在很多问题(包括安全性),并且比仅返回一组定义的信息的预定义信息查询复杂得多。

它还将定义哪些信息可能有用的负担加在了用户身上。它将决定特定用户是否应该访问特定信息的负担放在查询逻辑和数据库访问规则上。

实际上,您正在尝试使用不同的设计复制 PHPMyAdmin,并且仅将您定义的数据库作为目标。

关于php - 允许用户从我的数据库构建 View 并编辑这些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13545036/

相关文章:

mysql - Heroku - 错误的 MySQL 查询(ActiveRecord)?

database-design - Redis 集的替代品

javascript - 使用 BackBone.JS 设置表单并填写数据

php - 急切加载模型中的附加属性

php - 根据原始SQL结果获取额外数据

mysql - HQL 左连接不起作用

c# - 微软与mysql同步框架?

mysql - 在获取多语言数据时实现回退

SQL Server、LINQ-to-SQL 和表示容器类中的多个组件

javascript - 无法将元素附加到 FormData