Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 为Delphi项目选择正确的数据库_Database_Delphi_Delphi Xe2_Dbisam - Fatal编程技术网

Database 为Delphi项目选择正确的数据库

Database 为Delphi项目选择正确的数据库,database,delphi,delphi-xe2,dbisam,Database,Delphi,Delphi Xe2,Dbisam,我正在使用DelphiXe2进行开发 我正在为中小学设计一款软件。这所学校有1500名学生。数据库模型是关系型的,我们计划随着时间的推移保存每个学生的全部历史。(好吧,在某个时候它会被归档,但大多数情况下,所有的关系都会保持很好的时间) 我曾经使用Elevate软件中的DBISAM V4编写Delphi应用程序。我持有它的许可证,所以仍然有可能使用它 然而,我最近接触过很多使用Firebird的公司,一些使用Postgres,还有很多使用MySQL的网站 我认为没有必要去付费数据库,因为这类客户

我正在使用DelphiXe2进行开发

我正在为中小学设计一款软件。这所学校有1500名学生。数据库模型是关系型的,我们计划随着时间的推移保存每个学生的全部历史。(好吧,在某个时候它会被归档,但大多数情况下,所有的关系都会保持很好的时间)

我曾经使用Elevate软件中的DBISAM V4编写Delphi应用程序。我持有它的许可证,所以仍然有可能使用它

然而,我最近接触过很多使用Firebird的公司,一些使用Postgres,还有很多使用MySQL的网站

我认为没有必要去付费数据库,因为这类客户对投资很敏感。因此,任何可以免费使用的数据库,加上继续使用DBISAM的选项。我喜欢它,但它正在变老

我更喜欢将业务逻辑放在软件上,而不是放在数据库中,因此不需要在数据库端执行复杂的逻辑或过程

我的问题是:我需要考虑如何选择正确的数据库? 这可以帮助你。除此之外,您还必须决定使用OLE-DB、ODBC或DBX作为中间件技术。取决于您将找到或不支持Delphi的支持

另一个标准包括数据库选项方面的技术诀窍以及安全性和可伸缩性方面的限制/要求

然而,无论您选择什么DBMS,我给您的最好建议是在专用服务层中隔离对它的访问,这样您的大多数应用程序就不会直接依赖于它

在您的位置上,我将根据域类对应用程序进行建模,并投资于持久性层。如果您将来必须使用另一个DBMS,您的大部分代码将被保留。

这会对您有所帮助。除此之外,您还必须决定使用OLE-DB、ODBC或DBX作为中间件技术。取决于您将找到或不支持Delphi的支持

另一个标准包括数据库选项方面的技术诀窍以及安全性和可伸缩性方面的限制/要求

然而,无论您选择什么DBMS,我给您的最好建议是在专用服务层中隔离对它的访问,这样您的大多数应用程序就不会直接依赖于它


在您的位置上,我将根据域类对应用程序进行建模,并投资于持久性层。如果您将来必须使用另一个DBMS,您的大部分代码将被保留。

DBISAM将在这里工作,您甚至可以在Delphi中编写一个Web服务,以提供对平板电脑等的访问。您需要开始思考这里真正重要的事情,例如用户在哪个平台上,总共有多少用户,有多少用户将同时使用数据库(平均和峰值),每个学生保留多少行,每天添加/删除/更新多少行,等等。。DBISAM具有有限的SQL。它可以做很多事情,但不是在其他数据库中可以做的所有事情。他们较新的产品ElevateDB解决了大多数缺陷,包括Unicode

DBISAM将在这里工作,您甚至可以用Delphi编写一个Web服务,以提供对平板电脑等的访问。您需要开始思考这里真正重要的事情,例如用户在哪个平台上,总共有多少用户,有多少用户将同时使用数据库(平均和峰值),每个学生保留多少行,每天添加/删除/更新多少行,等等。。DBISAM具有有限的SQL。它可以做很多事情,但不是在其他数据库中可以做的所有事情。他们较新的产品ElevateDB解决了大多数缺陷,包括Unicode

这是离题的。使用现成的s/w不是更好吗?为什么学校需要定制软件?如果这与编程有关,怎么可能偏离主题?这与一款新软件有关,该软件主要基于android平板电脑,该平板电脑连接到webservice服务器,业务逻辑和其他东西都在该服务器上。在我的国家没有这样的。他们想用平板电脑、安卓系统或未来的任何东西来取代PC。他们想付钱,我想拿钱。够好了吗?很多与编程相关的东西在这里都是离题的。阅读。@eelias:只有您可以决定是否需要SQL数据库。2013年启动ISAM或基于平面文件的数据库项目是一个奇怪的想法。但这只是我的意见。整个NoSQL与SQL之争是一场全面的宗教战争,你付出你的金钱,你冒着风险。哦,如果你选择得不好,那么你必须接受你的选择很多年。如果你正在为一所学校建造这所学校,考虑问问他们想要什么。我打赌他们会想要MS SQL Express。要解决离题限制,你应该将你的问题重新表述为多个特定的“如何”问题。比如:“我正在开发一个具有关系数据库模型的应用程序。该数据库将包含大约1500名学生的多年信息。共有#####个并发用户,共有#####个用户。我不能/不能为数据库使用单独的服务器。我更喜欢应用程序中的业务规则。”然后“我如何使用Firebird实现这一点。”(与DBISAM/SQLite/…)或“我如何才能列出数据库存储体系结构的短名单”相同。这与本文无关。使用现成的s/w不是更好吗?为什么学校需要定制软件?如果这与编程有关,怎么可能偏离主题?这与一款新软件有关,该软件主要基于android平板电脑,该平板电脑连接到webservice服务器,业务逻辑和其他东西都在该服务器上。在我的国家没有这样的。他们想用平板电脑、安卓系统或未来的任何东西来取代PC。他们想付钱,我想拿钱。够好了吗?很多与编程相关的东西在这里都是离题的。阅读。@eelias:只有您可以决定是否需要SQL数据库。启动ISAM或平板