MS Access何时比RDBMS支持的Web应用程序更好? [英] When is MS Access better that a web app backed by RDBMS?

查看:76
本文介绍了MS Access何时比RDBMS支持的Web应用程序更好?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

几年前,我从高中就没使用过Access.

I haven't used Access since high school, years ago.

与真正的RDBMS支持的Web应用相比,它能很好地解决什么样的问题,甚至更好?

What kind of problem does it solve well, or even better than a web app backed by a real RDBMS?

它还在积极发展吗?还是MS已经死了?

Is it still actively developed? Or is it pretty dead to MS already?

最大的局限性是什么?

更新:

应该使用什么资源来学习如何为小型企业开发MS Access解决方案?

What resource shall one use to learn how to develop a MS Access solution for small business?

谢谢

推荐答案

首先,Access是一个真正的RDBMS.它不是客户端服务器RDBMS.

的含义是同时连接的数量受到限制,数据的安全性需要仔细考虑.

The only implications of this are that there is a throttle on the number of simultaneous connections and the security of the data needs careful thought.

此外,Access还是一个使用VBA作为其语言的IDE.

Amongst other things, Access is also an IDE that uses VBA as its language.

这意味着在Access中,您可以编写链接到SQL Server后端,Access后端或SharePoint后端的前端应用程序.因此,它是一种非常通用的Cookie.

This means that in Access you can write Front End apps that link to either a SQL Server back end, an Access back end, or a SharePoint back end. So it is one very versatile cookie.

它的局限性是:

  1. 安全性:如果您使用的是访问后端,请注意它没有客户端服务器数据库的内置安全性.在任何应用程序中,安全性都是成本和数据保密性的函数.

  1. Security: if you are using an Access Back End, take note that it doesn't have the built in security of a client server database. In any app, security is a function of the cost and the requisite secrecy of the data.

同时连接数.如果您不小心,Access将与10个以上试图同时更新数据的人员进行斗争.您可以扩展它,但是您需要知道您在做什么才能保证结果.给它加上一个数字,可以说50个同时连接.

Number of simultaneous connections. if you are not careful, Access will struggle with more than 10 people trying to update data simultaneously. You can extend that, but you need to know what you are doing to guarantee results. to put a number to it, lets say 50 simultaneous connections.

与大多数数据库一样,它易于损坏.

Like most databases, it is liable to corruption.

注意:在将Access称为数据库时,您实际上应该指的是数据库引擎",JET或ACE,具体取决于版本,对于Access 2007+,则取决于所使用的文件格式.换句话说,如果您将数据存储在Access表中,那么您将使用JET或ACE.但是,如果您使用的是LINKED TABLES(例如在SQL Server中),那么严格来说,您就不会为这些表使用JET或ACE安全性.

NOTE: when referring to Access as a database, you should really be referring to the "database engine", JET or ACE, depending on the version and, for Access 2007+, dictated by the file format that you use. In other words, if you are storing data in Access tables, you are using either JET or ACE. However, if you are using LINKED TABLES, that are in, for example, SQL Server, then you are not, strictly speaking, using JET or ACE security for those tables.

  1. Access SQL不允许您编写存储过程(可以在VBA中编写函数),从某种意义上说,Access SQL仅允许命令性语句而不是过程性语句(例如,控制流语句).您可以使用VBA函数引入一些过程代码",但这与使用SQL语句非常不同.

  1. Access SQL doesn't allow you to write stored procedures (you can write functions in VBA), in the sense that Access SQL only allows imperative statements as opposed to procedural statements (eg, control flow statements). You can introduce some "procedural code" using VBA functions, but this is very different to using SQL statements.

您将备份文件本身.您可以单击按钮来编写代码.

You backup the file itself. You can write code to do this at the click of a button.

安全性始终是成本的函数.如果您拥有的数据价值超过100,000美元(如果数据被盗,则可能会失去权利或承担法律责任,并且您没有在保护方面进行尽职调查),那么Access可能不是答案. 100,000是一个任意数字.准确的数字取决于数据是否可保险以及数据丢失或被盗的后果.

Security is always a function of cost. If you have data that is worth more than 100,000 US$ (either in loss of rights or legal liabilities if it is stolen and you have not shown due diligence in protecting it), then Access is probably not the answer. 100,000 is an arbitrary figure. The precise figure will depend on whether the data is insurable and the consequences of it being lost or stolen.

也就是说,如果数据的价值是驱动因素,那么绝对不要将Access用作后端.是否将其用作前端,这是预算问题.花了5000美元,我编写了仍然可以在10年后运行的应用程序.由于敏感数据量的增长,他们现在需要将后端移植到SQL Server.

Ie, if the value of the data is the driving concern, then definitely don't use Access as a Back End. Whether you use it as a Front End, is a matter of budget. For US$5000 I have written apps that are still running 10 years later. They now need to port the back end to SQL Server because the volume of sensitive data has grown.

在上述限制内使用Access并由专业Access开发人员使用(而不是一些不满的傻瓜认为自己应该使用更酷"的技术)时,它将在十分之一的时间内产生非常复杂,坚固且可靠的应用程序其他系统的成本.在这种情况下,Access绝对是无脑的.

Access, when used within the above constraints AND when used by a professional Access developer (rather than some disgruntled fool who thinks he should be using "cooler" technologies), will produce very sophisticated, sturdy and reliable applications at a 10th of the cost of other systems. In such scenarios, Access is a total NO BRAINER.

其他任何东西都将花费更多,花费更长的时间,并且仅与编写代码和设计UI的人一样好.

Anything else will cost more, take longer and will only be as good as the person who writes the code and designs the UI.

我有一个应用程序(我在Access中内置的第一个应用程序),运行了10年没有出现问题.我们已经对其进行了大规模扩展.我已经进入了ASP.NET MVC,但是Access正是我的发源地,并且我认为它运行良好.

I have an application (the first one I ever built in Access) that has run without problems for 10 years. We have extended it massively. I have moved into ASP.NET MVC, but Access is where I hail from and I have seen it work well.

因此,总而言之:用户数量是相关的,数据中隐含的价值或负债是另一个决定因素.

So in summary: the number of users is relevant and the value or liabilities implicit in the data are the other deciding factor.

如果同时使用的用户数量较少且数据的价值/隐含负债较少,则选择肯定是Access.

If the number of simultaneous users is low and the value/implicit liabilities of the data is low, then the choice is definitely Access.

但是,请自己成为一名优秀的开发人员.

However, get yourself a good developer.

修改/说明:

与所有答案一样,以上答案是在工作日中间匆忙编写的.有些陈述有些呆板,有些泛泛,没有以适当的精确度编写……但是,当其他人的评论是合理的时,答案的作者应该对文章进行修改并加以澄清.

The above answer, like all answers, was written in haste in the middle of a working day. Some statements were a bit glib and generic and not written with a suitable degree of precision... However, when the comments made by others are reasonable, the author of the answer should edit the post and clarify.

1/

访问是神圣的三位一体.它是一个IDE,用于编写要在查询中使用的表单,报表和函数.它包括"一个数据库引擎(JET/ACE).它在数据库引擎上提供了一个可视界面,使您可以设计查询,设置表之间的关系等.

Access is a holy trinity. It is an IDE for writing forms and reports and functions to use in your queries. It "includes" a database engine (JET/ACE). It provides a Visual Interface onto the database engine that allows you to design queries, set up relationships between tables, etc.

通常它在许多角色中都被称为Access,但是精确度确实有助于学习Access并从中获得最大收益.

It is usually referred in its many roles as just Access, but precision does help to learn Access and get the most out of it.

2/

Access不能使用存储过程,因为Access SQL只能使用命令性语句,而不能使用过程性语句(例如,控制流语句).我一直认为,将它们称为存储的过程是有原因的.

Access can't use stored procedures in the sense that Access SQL can only use imperative statements rather than the procedural ones (eg, control flow statements). There is a reason, I have always thought, for calling them stored PROCEDURES.

3/

并非每个Access应用程序的成本都恰好是100,000. Access应用程序的预算也不等于数据的价值.那是显而易见的.我试图传达的想法是,如果数据的价值超过可以合理保证的总和,那么就不要使用Access.那是十万这个数字吗? Access的前项目经理Luke Chung和Clint Covington表示,是的,但请不要相信.这真的意味着很多钱".

Not every Access app costs exactly 100,000. Nor is the budget of an Access app equal to the value of the data. That is obvious. The idea I was trying to convey was that if the data is worth more than a sum that can be reasonably insured, then don't use Access. Is that figure 100,000? According to Luke Chung and Clint Covington, ex program manager for Access, yes, but don't take their word for it. It really just means "a lot of money".

我写了一个医疗慈善应用程序,该应用程序在最初的预算为5000以后仍然运行了10年.这些年来,他们可能又投资了20,000.这类应用是Access的最佳选择.

I have written an app for Medical Charities that still runs 10 years later after an initial budget of 5000. They have probably invested another 20,000 over the years. That kind of app is the Access sweet spot.

这篇关于MS Access何时比RDBMS支持的Web应用程序更好?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆