加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 可以将演示数据存储在数据库中吗?

发布时间:2020-12-13 13:37:03 所属栏目:PHP教程 来源:网络整理
导读:我将在网页中显示数据库(SQL SERVER 2005)表中的行.这些行包含statusID(外键),StatusID由Status表进一步定义(例如id,name,modifiedDate). 各种状态应以不同的方式显示(假设它们只是具有不同的背景颜色). 我使用php来查询数据库,并构建网页表.在构建表时,我将
我将在网页中显示数据库(SQL SERVER 2005)表中的行.这些行包含statusID(外键),StatusID由Status表进一步定义(例如id,name,modifiedDate).

各种状态应以不同的方式显示(假设它们只是具有不同的背景颜色).

我使用php来查询数据库,并构建网页表.在构建表时,我将基于该行的状态将css类应用于元素.

我有至少2个选项来执行此操作:

>在php中定义代码逻辑来处理它,如果在数据库中更改了状态,我将不得不更改代码.
>将“类”存储在数据库中,只需应用已存储的类.

后一种选择对我来说似乎更好,但我不确定将表示数据嵌入数据库是一个糟糕的设计选择.这将是我创建几个内部网实用程序的基础,我想从右脚开始.

在数据库中存储任何数据都没有错,包括演示数据.如果它可以帮助您产生有效的结果,同时编写更少的代码,那么这是一个很好的做法.您需要确保的是,您不要将表示逻辑与数据库逻辑混合在一起.

您可以通过在elementInfo对象的属性中封装表示层的数据来确保这些问题是分开的(例如).

由于它是您正在讨论的CSS类,因此该演示文稿数据应与业务数据分开.因此,虽然可以将演示数据和业务数据存储在数据库中,但将它们存储在同一个表中是不可接受的.

更新:评论不,您不应该在业务对象上添加PresentationClassRecord的Id作为FK.我在下面的数据库中提供了一个方法的示例.我将DummyTable称为业务对象,其余的遵循规范.最相关的部分是StatusPresentationAssignmentTable

-----------------------------------------------
 DummyTable
 -----------------------------------------------
 Id      Name     SomeOtherDataField    StatusId
 PK int  varchar  int                   FK int

 -----------------------------------------------
 StatusTable
 -----------------------------------------------
 Id      Name     ModifiedDate
 PK int  varchar  datetime

 -----------------------------------------------
 PresentationTable
 -----------------------------------------------
 Id      PresentationType    Value 
 PK int  varchar            
 sample data:
 43      CssClass            prettyBackground

 -----------------------------------------------
 StatusPresentationAssignmentTable
 -----------------------------------------------
 StatusId    PresentationId 
 FK int      FK int

现在有两个简单的连接子句,您可以获取演示数据,并且它与您的业务数据完全分离.您的脚本可以执行类似检查Dummy的状态是否具有任何演示文稿分配的操作.如果是,则查看PresentationType,获取相应的函数以将演示数据应用于演示文稿,并执行它. (您需要为每个知道如何处理该值的PresentationType提供一个函数 – 可以通过函数applyPresentationValue(presentationElement,presentationType,presentationValue)封装的函数,如果presentationType调用另一个函数applyCssClass(presentationElement,value) ==“CssClass”).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读