将数据库表名存储在配置文件中是否应该被视为“最佳实践”?
我确实理解将表名存储在配置文件中会使以后的更新更容易:如果表被重命名,则只有一个文件需要更新。
但是,假设检索表名是使用如下函数完成的:getTableName_Customers()(假设表名是 Customers)
如果表 Customers 重命名为 Clients,我们还应该将函数名称更新为 getTableName_Clients(),这意味着所有出现的 getTableName_Customers() 也将“必须”在源代码中重命名。
对我来说,重命名所有源文件中所有出现的硬编码表名是一样的。
表名应该存储在配置文件中还是应该在源代码中保留为“硬编码”? 在这方面有什么最佳做法吗?
谢谢
最佳答案
在数据库与代码库分离的大多数开发环境中,例如 Java & Postgres , 是的,您必须手动更新代码库以与数据库中的名称更改同步。
在与数据库集成的开发环境中不是问题,例如 4D或 Filemaker名称更改会自动渗透到整个代码库中。
数据库迁移工具
您可能想了解数据库迁移工具,例如 Flyway或 Liquibase或其他人。
这些工具提供了一种有组织的方式来定义您的数据库、添加/删除/修改表、添加/删除/修改列、添加/删除/修改索引等等。该工具查看现有数据库并自动应用任何尚未应用的修改。
该工具跟踪文件中的数据库迁移脚本(SQL 或其他如 XML 或 Java 代码等)。如果适合您的情况,您可以选择将这些文件与应用的源代码一起保留。
因此,当您决定将 Customer
表重命名为 Client
时,您可以使用一些搜索和替换操作更新您的 Java 代码。同时编写数据库修改脚本。请放心,当遇到需要更新的数据库时,您的数据库迁移工具会自动应用最新的脚本。
是的,使用迁移工具,您仍然需要在两个地方(应用程序代码和迁移脚本)更改名称,但您可以方便地同时执行这两个操作,而不必担心部署问题。
关于database - 在哪里存储数据库表名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44626592/