如何在页面中构建数据库调用?

时间:2011-12-19 21:04:20

标签: php mysql database-design web-applications

好的,所以我很擅长在页面中创建复杂的数据库结构。我有一个基本人员表,有几个类别。学生,老师,家长和模组。还有父母,学生和教师/模组的表格。它基本上是学校的网站。

现在举例说明一个配置文件页面,其中向父母显示学生的信息。信息,如谁是教师,科目,出勤,家庭作业等。这将查询很多表。那么我最好的选择是什么呢?我计划以网络应用的方式进行。我想也许我可以将JSON数据用ajax进行分页,让javascript完成繁重的计算。所有表格只会被查询一次。

这样做甚至可以吗?或者当我把脚挖得太深时,我会面临一些隐藏的问题吗?也许我可以再深入一级并制作一个巨大的JSON,将整个数据库发送给用户,然后将其缓存在浏览器中。我不必支持真正的旧版浏览器:)

每次都需要计算出勤和分数/结果等事项。有没有办法缓存每个学生的结果?就像父母查看学生的结果一样,它会计算一次,然后以某种方式在服务器上将其缓存x天。

修改

我能想到的另一种非JSON方法是传统方式。我用php在服务器端做所有的事情。这意味着我不必担心浏览器兼容性。也许我可以在开始时调用所有需要的表并存储它是一个数组。这样一个表也只会被调用一次。

编辑2

我在某处了解过战地3战斗网站。它也是以同样的方式。所有数据都是从带有JSON的服务器中提取的,然后在客户端计算。如果这有助于我的想法。

2 个答案:

答案 0 :(得分:1)

可能会消除一些误解,但这是一个冗长的评论而不是答案:

您的数据库有表和fiels。这完全有效。数据库服务器的工作是存储数据并处理查询。您自己的代码在连接表时永远不会比数据库的代码更好。因为数据库服务器已针对任务进行了优化。

所以我认为查询所有数据并通过JSON将其放入您的webapp的想法只是一个坏主意。如果您需要特定数据,请联系您的服务器,服务器将构建相关的SQL查询,将其激活到数据库服务器,获取结果,将结果转换为JSON并将其发送回浏览器。

答案 1 :(得分:0)

AJAX(Asynchronus Javascript和XML)只允许您在绘制页面的主要部分后即时获取数据。在所有条件相同的情况下,您可能更容易将其设计为标准(获取数据然后绘制页面)布局。如果您正确设计了应用程序,则可以在页面前渲染或后期页面渲染中收集执行各个组件(出勤,教师,成绩等)的调用。通过AJAX路线存在明显的安全问题(URL黑客攻击),而且我个人设计非AJAX,因为当事情开始变得很糟糕时,它不那么流行。