我从初学者那里重新访问了一些代码,发现一些SQL表的列名非常模糊,让我感到畏缩。
现在如果我继续更改名称,那么纠正代码中所有映射所需的时间和精力似乎在这一点上是不合理的。
我想知道在插入数据库时是否可以提供别名?
我问,因为您可以在SELECT
上使用别名:
SELECT users.id, username, number AS order_number FROM users INNER JOIN orders ON users.id = orders.user_id;
或者有没有人对如何做到这一点有任何其他建议?
答案 0 :(得分:3)
虽然重构数据库无疑是一个很大的风险活动,但这里有一些缓解风险的技巧。以下是一些有各种利弊的建议(正如我看到的那样)希望他们会有所帮助。
<强>代码强>
根据您的编程语言,舒适度和时间范围,您可以使用像Hibernate / NHibernate等RDBMS独立对象关系映射器替换内联直接SQL。
赞成
缺点
存储过程
根据您的RDBMS,您可以使用存储过程为底层数据和架构提供抽象和附加安全性。
赞成
缺点
<强>视图强>
您可以将现有表Users
和Orders
重命名为其他内容,并使用视图提供列名抽象。
赞成
缺点
门面表 结合视图建议,您可以创建具有修订列命名和安全访问权限的外观表。将数据插入facade表时,使用触发器作为填充旧表的抽象机制。
赞成
缺点
答案 1 :(得分:3)
您可以将表格包装在视图中,然后在视图中插入。
create view view_nice_column_names
as
SELECT bad_name_1 as nice_name_1, bad_name_2_as nice_name_2 FROM blabla
GO
INSERT INTO view_nice_column_names (nice_name_1, nice_name_2) VALUES ( ...)