我正在使用旧数据库。命名约定遍布整个地方并且不一致。我们正在编写一个Ruby on Rails应用程序,但显然数据库与Rails内置功能的搭配并不好。这是我们的策略,希望得到一些意见:
我遇到的问题是如何将这个MySQL View生成脚本放入rails应用程序中。这样的东西会适合文件结构吗?作为某种插件?
表格映射:
+--------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| database | varchar(64) | NO | | | |
| current_name | varchar(64) | NO | | | |
| current_pk | varchar(64) | YES | | NULL | |
| new_system_prefix | varchar(255) | YES | | NULL | |
| new_format | varchar(255) | YES | | NULL | |
| new_vendor | varchar(255) | YES | | NULL | |
| new_name | varchar(64) | YES | | NULL | |
| new_pk | varchar(64) | YES | | NULL | |
| notes | varchar(255) | YES | | NULL | |
+--------------------+------------------+------+-----+---------+----------------+
列映射:
+-----------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| table_id | int(11) unsigned | YES | MUL | NULL | |
| current_name | varchar(255) | YES | | NULL | |
| current_type | varchar(255) | YES | | NULL | |
| current_default | varchar(255) | YES | | NULL | |
| new_name | varchar(255) | YES | | NULL | |
| new_type | varchar(255) | YES | | NULL | |
| new_default | varchar(255) | YES | | NULL | |
| extra | varchar(255) | YES | | NULL | |
| notes | varchar(255) | YES | | NULL | |
+-----------------+------------------+------+-----+---------+----------------+
答案 0 :(得分:1)
我建议你阅读一下防腐层,这是DDD模式之一。此模式的主要原则是保护您的模型免受与其交互的遗留系统的影响。其中一个选项是创建一个Repository并封装处理遗留数据库的所有查询。存储库将充当旧数据库和新模型之间的转换器。数据库字段到实体的映射也将由存储库完成。