您还需要决定是否编写一个应用程序以在所有平台上部署,或者是否可以重写该应用程序以在某些平台上部署。据我所知,唯一可以在您提到的所有平台上运行的技术选择是 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)平台)。如果您选择 Java,那么您可以进行 Web 部署、Mac 部署(尽管您无法通过 Mac App Store 分发 Java 应用程序)和 Windows 部署,但您需要使用 Obj-C 或 HTML 5 for iOS 。
总之,正确的方法是:
选择您的部署目标
根据该选择,选择您的开发系统
根据该选择,选择您的数据库引擎。
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.
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.
So in summary, the right approach is:
Pick your deployment target(s)
Based on that choice, pick your development system(s)
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.
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 将是合理的选择。但是,如果您坚持实际拥有数据库服务器,则应该研究 PostgreSQL。它的许可证比 MySQL 宽松得多。
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.
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.
So pick your DBMS based on the anticipated usage pattern.
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".
发布评论
评论(5)
我认为您正在向后处理问题 - 首先您应该决定要使用什么开发和部署平台,然后选择与该平台兼容的最佳数据库服务器。
我的意思是,无论您使用 SQL Server、MySQL、SQLite 还是任何其他匿名数据库引擎,都不能回答您将如何开发或部署应用程序的问题。
您还需要决定是否编写一个应用程序以在所有平台上部署,或者是否可以重写该应用程序以在某些平台上部署。据我所知,唯一可以在您提到的所有平台上运行的技术选择是 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)平台)。如果您选择 Java,那么您可以进行 Web 部署、Mac 部署(尽管您无法通过 Mac App Store 分发 Java 应用程序)和 Windows 部署,但您需要使用 Obj-C 或 HTML 5 for iOS 。
总之,正确的方法是:
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.
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.
So in summary, the right approach is:
如果它用于单用户应用程序,SQLite 可能是最好的选择 - 它是为嵌入式应用程序而构建的。它也可以在操作系统类型之间移植。
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 作为可移植到多个平台的轻量级数据库的建议。但是“完全兼容”Unicode 是什么意思呢?请参阅:http://www.sqlite.org/version3.html
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 将是合理的选择。但是,如果您坚持实际拥有数据库服务器,则应该研究 PostgreSQL。它的许可证比 MySQL 宽松得多。
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.
我建议您根据您的数据管理要求而不是您对系统其他组件的选择来选择数据库管理系统。最后几乎所有的都支持SQL。对于便携式客户端解决方案来说,SQLite 是一个不错的选择。 SQL-Server、MySQL、Postgres、DB2 和 Oracle 针对服务器端事务处理(大量插入和更新)进行了优化。 Vectorwise、Vertica 和 MonetDB 专注于分析查询(例如,对数据进行统计分析,如分组依据)。如果您在这里做出错误的选择,您可能会在以后遇到可扩展性/性能问题,这可能会非常昂贵。
因此,根据预期的使用模式选择您的 DBMS。
顺便说一句:Oracle DBMS 实例的许可证很容易就会高达几万美元。因此,在说“价格不是问题”时要小心。
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.
So pick your DBMS based on the anticipated usage pattern.
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".