我们正在设计一个Rails 4.1应用程序,它将被部署到小盒子中,很可能是基于ARM的(例如CuBox-i2eX)或者如果ARM不削减它的话会更便宜Intel NUC。
将在同一个盒子上运行一些其他服务,这些服务将获得大部分流量,而Rails应用程序主要用于管理目的,大多数时间只有最小流量,但是应该处理少数人的大量工作流程。次(输入数据)。大多数规模的总体数据量都很小。
此时似乎SQLite3对于这种应用程序来说是理想的,但是托管数据描绘了学生,教师等类似LDAP的模式,并且包含许多具有多个值(或结构)的属性,使其成为理想选择对于PostgreSQL的array
和h-store
数据类型,在SQLite3中实现起来有些麻烦。
我知道Rails的serialize
,但我需要查询至少其中一些多值列,让我在两个选项之间:
EmailAddress
和TelephoneNumber
EmailAddress < StringValue
和TelephoneNumber < StringValue
,并在需要时将它们与多态关联结合在一起,以便StringValue
可以属于多个模型。所以我的问题是:当我使用STI和多态关联时使用完整的PostgreSQL安装时没有任何缺点,而我不需要一个性能。
答案 0 :(得分:2)
我偏袒旧学校,但我个人会将数据标准化。这为您提供了未来的证明,可以生成您之前没有想过的查询。当你没有担心安全问题时(我想要隐藏某些应用程序/用户的某些数据)或者我不希望做多少架构更改,我倾向于支持sqlite。 (ALTER TABLE在SQLite中受限)。
我曾尝试在Android平板电脑上设置Postgresql,但最终无法这样做,因为它试图使用不可用的内核工具(与共享内存相关)。如果您想尝试这个方向,请确保您可以让它在您的环境中运行。