xcode Mac 数据库哪一个(SQL Server?MySQL?SQLlite?FileMaker?Cocoa SQL)

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6606875/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 21:25:51  来源:igfitidea点击:

Mac Database which one (SQL Server ? MySQL ? SQLlite ? FileMaker ? Cocoa SQL)

sqldatabasexcodemacosfilemaker

提问by Alish

I would started a database project (Accounting Application) for now Mac version which will be available in AppStore. For future might be on iOS, Windows and web base. I need database app that don't need the database ported to other platforms just by changing the UI and other sources I able to port it, no need to touch the database.

我将启动一个现在 Mac 版本的数据库项目(会计应用程序),该项目将在 AppStore 中提供。未来可能会在 iOS、Windows 和网络基础上。我需要不需要将数据库移植到其他平台的数据库应用程序,只需更改 UI 和其他能够移植它的源,无需接触数据库。

I'm a bit confuse to choose a suitable database SDK or etc!

我有点困惑选择合适的数据库 SDK 等!

Ror example I can choose:
? SQL Server
? MySQL
? SQLlite
? FileMaker
? Cocoa SQL

例如我可以选择:
?SQL 服务器
? MySQL
? SQLlite
? 文件制作工具
?可可SQL

Remember I need:
1- Something not to complicate and easy to use it on XCode.
2- Have a bit security on the file.
3- the most XCode user using it.
4- Price is no problem.
5- Unicode fully compatible.

请记住,我需要:
1- 不复杂且易于在 XCode 上使用的东西。
2- 对文件有一点安全性。
3- 使用它最多的 XCode 用户。
4-价格没问题。
5- Unicode 完全兼容。

For my situation, which one do you recommend.

对于我的情况,你推荐哪一种。

回答by Jesse Barnum

I think you're approaching the problem backwards - first you should be deciding on what development and deployment platform you want to use, and then select the best database server compatible with that platform.

我认为您是在倒退问题 - 首先您应该决定要使用的开发和部署平台,然后选择与该平台兼容的最佳数据库服务器。

What I mean by this is that whether you're using SQL Server, MySQL, SQLite, or any other faceless database engine, that doesn't answer the question of how you're going to develop or deploy the application.

我的意思是,无论您使用的是 SQL Server、MySQL、SQLite 还是任何其他匿名数据库引擎,都无法回答您将如何开发或部署应用程序的问题。

You also need to decide whether to write one application for deployment on all platforms, or if you're OK with rewriting the application for deployment on certain platforms. The only technology choices I'm aware of that will work across all the platforms you've mentioned is an HTML 5 web app (using Ruby, Java, .NET, PHP, or some other web development system) or FileMaker (using FileMaker Pro for Mac / Windows / Web deployment and FileMaker Go for iOS deployment). If you're OK with writing a desktop/iOS version separately from a web version, then you need to ask yourself how many versions you want to write. If you pick something like C / C++ / Obj-C, then you're going to need to pretty much re-write it for each platform you've mentioned (although you can port from iOS to OS X with less effort than the other platforms). If you pick Java, then you're set for web deployment, Mac deployment (although you can't distribute Java apps via the Mac App Store) and Windows deployment, but you'll need to use Obj-C or HTML 5 for iOS.

您还需要决定是否编写一个应用程序以在所有平台上部署,或者您是否同意重写应用程序以在某些平台上部署。我所知道的唯一可以在您提到的所有平台上工作的技术选择是 HTML 5 Web 应用程序(使用 Ruby、Java、.NET、PHP 或其他一些 Web 开发系统)或 FileMaker(使用 FileMaker Pro用于 Mac/Windows/Web 部署和 FileMaker Go 用于 iOS 部署)。如果您可以将桌面/iOS 版本与网络版本分开编写,那么您需要问问自己要编写多少个版本。如果你选择像 C/C++/Obj-C 这样的东西,那么你几乎需要为你提到的每个平台重新编写它(尽管你可以比其他平台更轻松地从 iOS 移植到 OS X平台)。

So in summary, the right approach is:

所以总而言之,正确的方法是:

  1. Pick your deployment target(s)
  2. Based on that choice, pick your development system(s)
  3. Based on that choice, pick your database engine.
  1. 选择您的部署目标
  2. 根据该选择,选择您的开发系统
  3. 根据该选择,选择您的数据库引擎。

回答by Josiah

If its for a single user application SQLite is probably the best option - its purpose built for embedded apptications. Its also portable between os types.

如果它用于单用户应用程序,SQLite 可能是最好的选择 - 它专为嵌入式应用程序而构建。它也可以在操作系统类型之间移植。

回答by Tim

I'd second the recommendation of SQLite as a lightweight database portable to multiple platforms. But what do you mean by "fully compatible" with Unicode? See: http://www.sqlite.org/version3.html

我赞同 SQLite 作为可移植到多个平台的轻量级数据库的建议。但是您所说的与 Unicode 的“完全兼容”是什么意思?见:http: //www.sqlite.org/version3.html

回答by wadesworld

It's hard to say what you need from your description, but from what I can glean, SQLite would be the logical choice. However, if you insist on actually having a database server, you should investigate PostgreSQL. It has a far more permissive license than MySQL.

很难从您的描述中说出您需要什么,但据我所知,SQLite 将是合乎逻辑的选择。但是,如果您坚持要实际拥有数据库服务器,则应该研究 PostgreSQL。它拥有比 MySQL 更宽松的许可证。

回答by Holger

I would advise you to pick a Database Management System based on your data management requirements rather than on your choice for other components of your system. In the end almost all of them support SQL. SQLite is a good choice for a portable client-only solution. SQL-Server, MySQL, Postgres, DB2 and Oracle are optimized for server-side transaction processing (lots of inserts and updates). Vectorwise, Vertica and MonetDB focus on analytical queries (e.g., statistical analytics on your data like group by). If you make a bad choice here you might face scalability/performance issues later which may be very expensive.

我建议您根据您的数据管理要求而不是根据您对系统其他组件的选择来选择数据库管理系统。最后几乎所有的都支持 SQL。SQLite 是仅用于便携式客户端的解决方案的不错选择。SQL-Server、MySQL、Postgres、DB2 和 Oracle 针对服务器端事务处理(大量插入和更新)进行了优化。Vectorwise、Vertica 和 MonetDB 专注于分析查询(例如,对您的数据进行统计分析,如分组依据)。如果您在这里做出了错误的选择,您以后可能会面临可扩展性/性能问题,这可能会非常昂贵。

So pick your DBMS based on the anticipated usage pattern.

因此,请根据预期的使用模式选择您的 DBMS。

BTW: A License for an Oracle DBMS instance can easily go up to a couple of ten thousand dollars. So be careful when saying "Price is not a problem".

顺便说一句:Oracle DBMS 实例的许可证很容易涨到几万美元。所以说“价格不是问题”时要小心。