微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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”).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐