我正在开发一个使用PHP / SQL Server的应用程序,该应用程序需要存储来自大量不同学术课程的毕业生的信息,以及有关毕业后有多少人受雇的信息......然后用户会查询这些信息。我们希望将一个程序与另一个程序进行比较,因此他们需要能够生成显示学生成果的自定义表格。表格将是这样的:
Program Salary after 1 Year Salary after 2 Years Etc...
Engineering Lots Even more!
Philosophy Nothing Are you kidding me?
所以,这里有一个问题:我应该在数据库中存储这些数据点的各个值,还是应该只存储表行的原始HTML?
换句话说,我存储这个:
ProgramID Salary1 Salary2 Etc...
1 Lots Even More!
2 Nothing Are you kidding me?
或者我存储这个:
ProgramID RowHTML
1 <td>Lots</td><td>Even More!</td>...
2 <td>Nothing</td><td>Are you kidding me?</td>
我可以看到两种方法的论据......我的直觉告诉我存储原始HTML会更快 - 它将消除PHP处理的GOBS。但我愿意接受其他解释。
答案 0 :(得分:3)
任何RDBMS的简单规则,只存储表中的数据而不存储任何其他内容。
这将使您的数据检索,更新和插入操作快速,简单和安全。将数据存储在表中并在运行时创建HTML表。我在这里演示了当你只有数据存储在你的表中时,创建HTML表是多么容易和简单。
示例
我使用了你的例子
DECLARE @t TABLE (ProgramID INT,Salary1 VARCHAR(50),Salary2 VARCHAR(50))
INSERT INTO @t VALUES
(1,'Lots','Even More!'),
(2,'Nothing','Are you kidding me?')
DECLARE @tableHTML NVARCHAR(MAX) ;
SET @tableHTML =
N'<H1>Students Salaries</H1>' +
N'<table border="1">' +
N'<tr><th>ProgramID </th><th>Salary1</th><th>Salary2</th>' +
CAST ( ( SELECT td = ProgramID,
'',
td = Salary1,
'',
td = Salary2
FROM @t
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX) ) +
N'</table>' ;
SELECT @tableHTML;
HTML表格由上述查询
创建 <H1>Students Salaries</H1><table border="1"><tr><th>ProgramID </th><th>Salary1</th><th>Salary2</th><tr><td>1</td><td>Lots</td><td>Even More!</td></tr><tr><td>2</td><td>Nothing</td><td>Are you kidding me?</td></tr></table>
答案 1 :(得分:0)
我只存储原始数据。当老板说“让它看起来更新”或其他什么时,这将提供更改页面格式/布局的能力。如果存储表数据,则会卡住。
答案 2 :(得分:0)
我认为在数据库中存储这些数据点的单个值对于管理应用程序会更好,HTML很好但是当你使用PHP-DATAbase时更好,...祝你好运。
答案 3 :(得分:0)
所以,这是一个问题:我应该为这些存储单个值 数据库中的数据点,或者我应该只存储原始HTML 表格行?
直接回答:
存储data points
,您以后可以随时重新创建的html,这也可以让您的查询更快。
答案 4 :(得分:0)
简答:存储个人数据,而不是HTML。
这里存储HTML没有任何好处。重现表可能会更容易一些,但是您还要存储大量冗余信息,动态构建表并不是一件难事。操作原始数据也更容易:当您将工资随时间存储为单行HTML时,您只能按程序排序,但如果您每年存储一次并控制数据类型(您的示例工资是字符串) ,但是你应该存储整数或浮点数,因为你知道工资是一笔金额),你可以选择按毕业生从大学毕业的金额,未来十年等等来分类计划。请注意,您可能并不总是希望显示一个表:您可能希望绘制每个专业的收入随时间变化,例如,在这种情况下,您需要从和标签中提取工资,为自己创建更多工作,放慢申请速度。