sách gpt4 ai đã đi

postgresql - PostgreSQL 模式的命名空间版本以实现向后兼容性?

In lại 作者:行者123 更新时间:2023-12-04 17:04:24 30 4
mua khóa gpt4 Nike

假设我们有一个带有表的 SQL 数据库 Person以及访问它的几个应用程序。出于某种原因,我们想修改 Person表以向后不兼容的方式。

保持兼容性的一种潜在解决方案是将表重命名为 Người sử dụng并创建一个 Person提供与旧表相同的界面的 View 。 (根据需要添加插入、更新和删除触发器)。

该方法存在的问题是,在进行一些更改后,我们可能会用完可用的语义正确名称。

根据数据库版本“命名空间”模式“接口(interface)”是否有众所周知的最佳实践?

或者,有没有更好的方法来保持向后兼容性?

1 Câu trả lời

Is there a well-known best practice for "namespacing" the schema "interface" according to the DB version?



这不是一个常见的要求,但是当我看到对类似事物的需求时,我倾向于创建一个新模式,该模式在单独的模式(命名空间)中包含表的向后兼容包装器。然后我设置了 search_path以每个用户为基础,以便需要向后兼容表的用户看到它,而其他人看到新版本。

BC View 有一个 RULE或(在较新的 PostgreSQL 版本中) DO INSTEAD触发器从其正常模式中显式引用表的当前版本,例如 public.People , 以在需要时支持写入。

这仅在您需要基于每个登录用户的 BC 时才有效,您可以 ALTER USER ... SET search_path ,或者(不太可能)您可以设置需要 BC 的应用程序来运行 SET search_path每个 session 的命令。

关于postgresql - PostgreSQL 模式的命名空间版本以实现向后兼容性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17717426/

30 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com