我正在维护一个允许用户上传网络服务描述的网络应用程序。存储这些描述的服务表大致如下所示:
CREATE TABLE service(
id integer primary key,
name varchar(255)
targetNamespace varchar(255),
);
现在我们想让用户上传他的网络服务的多个版本。问题是如何在数据库中反射(reflect)这一点。
到目前为止,这是我的想法:
有一个服务表但只存储服务id
CREATE TABLE service( id integer primary key, );
有一个 service_version 表,它存储版本特定信息并使用 FK 引用服务表:
CREATE TABLE service_version( id integer primary key, service_id integer references service(id), name varchar(255), target_namespace varchar(255) );
这应该使我能够查询与服务关联的所有版本。这是一个理智的方法吗?有更好的解决方案吗?
最佳答案
我建议您需要 SERVICE 表中的属性而不是 ID,以便能够以有效的方式唯一标识单个 Web 服务。例如,名称会不会保持不变,从而成为 SERVICE 而不是 SERVICE_HISTORY 的属性?
只有版本之间可能发生变化的元素才应该在版本表中,你看。
关于sql - PostgreSQL - 存储服务描述的多个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20073320/