所以我在想......想象一下,你必须编写一个代表整个大学时间表的程序。
该时间表有几个方面(例如):
您必须能够从多个角度显示日程安排:
您如何保存此类数据,并保持从不同角度查看数据的能力?
我能想到的唯一方法是将它保存在您可能需要的每种形式中:
E.g。你有文件夹“学生”,其中每个学生都有一个文件,它包含何时,何地以及他必须在哪里。但是,您还有一个文件夹“locations”,每个位置都有一个文件,其中包含谁和为什么以及何时必须在那里。您拥有的角度越多,每个信息的比例就越大。
但这似乎非常低效,空间。
还有其他办法吗?
我对Javascript的了解是0,但是我想知道这样的事情是否可能,即使是这种空间效率低下的形式。
如果不是这样,我想知道它是否适用于任何其他标准(C ++,C#,Java等)语言,主要是Java ...
编辑:这可以通过使用MySQL数据库来完成吗?
答案 0 :(得分:2)
基本上,您尝试首先存储数据,然后将其呈现在不同的视图下。
SQL数据库就是为此而准备的:从一端构建模式并在数据库中实例化它以存储数据(该语言称为数据定义语言,DDL),然后使用查询语言对其发出请求(SQL),你称之为“视图”。在SQL数据库中甚至有“视图”对象来构建这些视图在数据库中(而不是在用户代码中使用请求的代码)。
MySQL可以肯定地做到这一点,请注意,可以为Javascript(例如SQLite)编译一些SQL引擎,并使用本地Web存储来存储数据。
您的问题还有另一个方面:优化查询。虽然SQL可以为您的视图执行大部分请求作业。有时优选在所谓的“数据集”中创建请求结果的实际副本(这称为对请求进行非规范化),以便每个周期执行一次选择或计算聚合/组函数等的艰苦工作时间(假设特定视图仅在星期一更改),然后请求者只需阅读这些结果。在这种情况下,至少在语义上将主要数据与次要数据分开是很重要的(出于性能/用户权利原因,物理隔离通常是一个好主意)。
请注意,正如你引用MySQL一样,我写了关于SQL的文章,但是大多数数据库技术都可以做你搜索过的事情(层次化,面向对象,XML ......),只要你使用的特定实现足够灵活为您的数据和请求。
简而言之: