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”). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |