我们有非常大的rails应用程序,目前我们正在从TestUnit/fixture转换到Rspec/FactoryGirl。我们的数据库有很多“系统”表,其中数据不变或很少更新。例如FactoryGirl,Rspec和复杂的数据库结构
user_types
ID NAME ...
1 System Adminisrator ...
2 Organization Administrator ...
....
9 Mega Administrator ...
另外我们有很多配置表和它们之间的长引用。例如:
master_organizations many-to-many organizations has_many
plan_years has_many products has_many plans
organizations has_many employees ... and so on
而且我们需要在所有规格运行之前配置所有系统表和至少一个组织。然后,如果需要,每个套件都可以将其他数据添加到数据库。
所以问题是如何构建一个好的,复杂的和灵活的结构,这对于开发人员是可读的?今天,我们最接近的解决方案是将db结构创建移动到单独的文件中:为系统表,配置表等创建shared_contexts。然后在必要时加入。但不确定这种方法是否好。