我将在这里扮演两个角色
- DBA:数据库管理员/设计师。
- 开发人员:应用程序开发人员。
我假设 DBA 是一个真正了解所有数据库技巧的人。真的知道。
DBA:
数据库是应用程序的关键,应该具有预定义的结构,以便很好地服务于其目的并具有最佳性能。
如果您不能使用随机模式(这是合理规范化的并且很好),那么这些工具就是错误的。
开发人员:
数据库只是一个数据存储,所以我们需要保持简单并专注于应用程序。
DBA:
数据库不是存储,它是应用程序的核心。没有数据库就没有应用程序。
开发人员:
不。应用程序是核心。没有前端和应用到它的业务逻辑就没有应用程序。
战争开始了……
这两点都是有效的,而且总是要权衡取舍。
如果该数据库仅由 RoR 使用,那么您可以更像一个简单的 store来使用它。
如果数据库可以被其他应用程序使用,或者它将与大量数据和高流量一起使用,它必须强制执行一些最佳实践。
通常,您无法不同意 DBA。
但他们可以了解您的情况,并可能允许您稍微放宽标准,这样您就可以提高工作效率。
所以你需要密切合作,一起工作。
你需要互相交谈来解释和证明为什么数据库应该这样或那样。
否则,团队就会破裂,项目很可能会失败。
ActiveRecord 是一个非常方便的工具。但它不能为你做一切。默认情况下,它不提供您所期望的数据库结构。所以应该调一下。
另一方面。如果 DBA 可以接受所有 PK 都是自动递增的整数,这将使开发人员的生活更轻松(ActiveRecord 默认会这样做)。
另一方面,如果开发人员愿意接受一些 DBA 约束,那么 DBA 的生活就会变得更轻松。
现在回答你的问题:
你会如何争论简化架构
不要争论。与团队会面并传达信息并指出为什么应该这样做。
也许它真的不应该,你不知道所有的事情,也许他们不知道什么。
您可以就数据库的一般结构达成一致,并尝试使用 RoR 迁移作为元语言来描述它。
这样他们就会看到总体情况,而您将使用您出色的 ActiveRecords。而且每个人都会在同一页面上。