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

前端之家收集整理的这篇文章主要介绍了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”).

猜你在找的PHP相关文章