【发布时间】:2020-03-12 15:00:46
【问题描述】:
我很难理解我正在开发的应用程序背后的逻辑。我正在用 PHP 和 MySQL DB 编写它。基本上,逻辑基于这样一个事实,即一切事物都有属性——例如,汽车有颜色、4 个门、车顶、发动机等等。然后每个部分都有自己的属性,并且可能由较小的部分组成。本质上每个部分都有自己的部分,每个属性都有自己的属性。
我在一个应用程序中使用了类似的逻辑,其中您拥有用户、角色和权限。每个角色可能只能看到某些角色,但这是使用分配给每个角色的权限定义的。每个对象类型(用户、角色、权限)都有自己的属性。用户的一个这样的属性是角色。对于角色,这将是权利。然后它们有自己的字段(其他属性),例如名称,描述等。名称有字段类型=文本,描述=长文本/文本区域等的属性,然后它们都有自己的描述,占位符,是否它们是直接可编辑或自动的(在创建/更新对象时 - 例如插入日期或更新日期)。然后您需要一个 UI 来定义字段 - 本质上,您需要知道字段具有哪些属性才能定义 UI 以创建或编辑字段 - 先有鸡还是先有蛋?如果所有对象都存储在数据库中,您如何/在哪里定义 UI 的标记?你能做到这么深还是会导致无限循环?
以前有人构建过这样的系统吗?似乎我一直到一个地步,我把所有的东西都抽象得太远了,让自己感到困惑并休息一下,然后我只是一遍又一遍地重复这个过程。不确定我是否应该继续走这条路,或者我是否应该在数据库中可靠地定义所有内容(例如带有名称、描述等列的用户表以及用户和角色以及角色和权限之间的链接)。欢迎任何意见。
PS 我曾尝试为此使用 WordPress,但它不适合这个项目,因为根据我的经验,WP 不够灵活,无法根据需要更改用户列表或表单。
【问题讨论】:
-
请人们不要投票关闭,除非他们愿意说明理由?!?我只是在征求意见 - 这可能不是一个只有一个正确答案的问题,但它是完全有效的,并且符合 StackOverflow 规则......
-
参见 JSON。见mysql.rjweb.org/doc.php/eav
标签: php mysql database-design application-design