为 table 和列设置全局别名?

Set a global alias for a table and a column?

我正在使用一个巨大的 Firebird 数据库,其中 table 具有完全不可读的名称,如 WTF$RANDOM_ABBREVIATION_6792RPG$RANDOM_ABBREVIATION_5462,其中列的名称如“rid9312”, "1NUM5", "2NUM4", "RNAME8".

我需要为它们设置全局别名,以便能够将它们用作全长 table 名称,如 Document 和列名称,如

Document.CreationDate 而不是 xecblob.DDATE4

TempDoc.MovingOrderID 而不是 TMP$LINKED_DOC_6101.DID6101

改变数据库,或 table,或列可能是一个大问题,因为记录可能有数百万和数千万,甚至更多, Delphi-写前端为数据库绑定table名和列名。

有没有办法做到这一点?

最接近“全局别名”的是创建 views。例如:

create view document
as
select 
  DDATE4 as creationdate
  -- , other columns...
from xecblob;

create view document (creationdate /*, other column aliases... */)
as
select 
  DDATE4
  -- , other columns...
from xecblob;

(就我个人而言,我发现第一个变体更具可读性)

这确实需要更改数据库,但没有与之相关的实际成本(table 是否包含一条、几千条或几百万条记录都没有关系)。