成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javer的表結(jié)構(gòu)設(shè)計(jì)

mgckid / 1783人閱讀

摘要:序設(shè)計(jì)了幾張表,這里簡單介紹下主要用來存儲對象的每次變更操作以及變更的屬性值。存儲了每次變更的存儲了每次變更的時(shí)間變更人支持自動從獲取也可以自定義,比如用來存儲額外的信息,比如存儲了用戶,順帶存一下用戶名等。

javers設(shè)計(jì)了幾張表,這里簡單介紹下

jv_snapshot

主要用來存儲對象的每次變更操作以及變更的屬性值。

-- ----------------------------
--  Table structure for jv_snapshot
-- ----------------------------
DROP TABLE IF EXISTS "public"."jv_snapshot";
CREATE TABLE "public"."jv_snapshot" (
    "snapshot_pk" int8 NOT NULL,
    "type" varchar(200) COLLATE "default",
    "version" int8,
    "state" text COLLATE "default",
    "changed_properties" text COLLATE "default",
    "managed_type" varchar(200) COLLATE "default",
    "global_id_fk" int8,
    "commit_fk" int8
)
WITH (OIDS=FALSE);
ALTER TABLE "public"."jv_snapshot" OWNER TO "postgres";

-- ----------------------------
--  Primary key structure for table jv_snapshot
-- ----------------------------
ALTER TABLE "public"."jv_snapshot" ADD PRIMARY KEY ("snapshot_pk") NOT DEFERRABLE INITIALLY IMMEDIATE;

-- ----------------------------
--  Indexes structure for table jv_snapshot
-- ----------------------------
CREATE INDEX  "jv_snapshot_commit_fk_idx" ON "public"."jv_snapshot" USING btree(commit_fk "pg_catalog"."int8_ops" ASC NULLS LAST);
CREATE INDEX  "jv_snapshot_global_id_fk_idx" ON "public"."jv_snapshot" USING btree(global_id_fk "pg_catalog"."int8_ops" ASC NULLS LAST);

-- ----------------------------
--  Foreign keys structure for table jv_snapshot
-- ----------------------------
ALTER TABLE "public"."jv_snapshot" ADD CONSTRAINT "jv_snapshot_commit_fk" FOREIGN KEY ("commit_fk") REFERENCES "public"."jv_commit" ("commit_pk") ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE "public"."jv_snapshot" ADD CONSTRAINT "jv_snapshot_global_id_fk" FOREIGN KEY ("global_id_fk") REFERENCES "public"."jv_global_id" ("global_id_pk") ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE;
jv_global_id

存儲了每次變更的id

-- ----------------------------
--  Table structure for jv_global_id
-- ----------------------------
DROP TABLE IF EXISTS "public"."jv_global_id";
CREATE TABLE "public"."jv_global_id" (
    "global_id_pk" int8 NOT NULL,
    "local_id" varchar(200) COLLATE "default",
    "fragment" varchar(200) COLLATE "default",
    "type_name" varchar(200) COLLATE "default",
    "owner_id_fk" int8
)
WITH (OIDS=FALSE);
ALTER TABLE "public"."jv_global_id" OWNER TO "postgres";

-- ----------------------------
--  Primary key structure for table jv_global_id
-- ----------------------------
ALTER TABLE "public"."jv_global_id" ADD PRIMARY KEY ("global_id_pk") NOT DEFERRABLE INITIALLY IMMEDIATE;

-- ----------------------------
--  Indexes structure for table jv_global_id
-- ----------------------------
CREATE INDEX  "jv_global_id_local_id_idx" ON "public"."jv_global_id" USING btree(local_id COLLATE "default" "pg_catalog"."text_ops" ASC NULLS LAST);

-- ----------------------------
--  Foreign keys structure for table jv_global_id
-- ----------------------------
ALTER TABLE "public"."jv_global_id" ADD CONSTRAINT "jv_global_id_owner_id_fk" FOREIGN KEY ("owner_id_fk") REFERENCES "public"."jv_global_id" ("global_id_pk") ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE;
jv_commit

存儲了每次變更的時(shí)間、變更人

-- ----------------------------
--  Table structure for jv_commit
-- ----------------------------
DROP TABLE IF EXISTS "public"."jv_commit";
CREATE TABLE "public"."jv_commit" (
    "commit_pk" int8 NOT NULL,
    "author" varchar(200) COLLATE "default",
    "commit_date" timestamp(6) NULL,
    "commit_id" numeric(22,2)
)
WITH (OIDS=FALSE);
ALTER TABLE "public"."jv_commit" OWNER TO "postgres";

-- ----------------------------
--  Primary key structure for table jv_commit
-- ----------------------------
ALTER TABLE "public"."jv_commit" ADD PRIMARY KEY ("commit_pk") NOT DEFERRABLE INITIALLY IMMEDIATE;

-- ----------------------------
--  Indexes structure for table jv_commit
-- ----------------------------
CREATE INDEX  "jv_commit_commit_id_idx" ON "public"."jv_commit" USING btree(commit_id "pg_catalog"."numeric_ops" ASC NULLS LAST);

支持自動從SpringSecurity獲取auditor

public class SpringSecurityAuthorProvider implements AuthorProvider {
    public SpringSecurityAuthorProvider() {
    }

    public String provide() {
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        return auth == null?"unauthenticated":auth.getName();
    }
}

也可以自定義,比如

@Bean
    public AuthorProvider authorProvider() {
        return new MockAuthorProvider();
    }
jv_commit_property

用來存儲額外的信息,比如存儲了用戶id,順帶存一下用戶名等。

-- ----------------------------
--  Table structure for jv_commit_property
-- ----------------------------
DROP TABLE IF EXISTS "public"."jv_commit_property";
CREATE TABLE "public"."jv_commit_property" (
    "property_name" varchar(200) NOT NULL COLLATE "default",
    "property_value" varchar(600) COLLATE "default",
    "commit_fk" int8 NOT NULL
)
WITH (OIDS=FALSE);
ALTER TABLE "public"."jv_commit_property" OWNER TO "postgres";

-- ----------------------------
--  Primary key structure for table jv_commit_property
-- ----------------------------
ALTER TABLE "public"."jv_commit_property" ADD PRIMARY KEY ("commit_fk", "property_name") NOT DEFERRABLE INITIALLY IMMEDIATE;

-- ----------------------------
--  Indexes structure for table jv_commit_property
-- ----------------------------
CREATE INDEX  "jv_commit_property_commit_fk_idx" ON "public"."jv_commit_property" USING btree(commit_fk "pg_catalog"."int8_ops" ASC NULLS LAST);
CREATE INDEX  "jv_commit_property_property_name_property_value_idx" ON "public"."jv_commit_property" USING btree(property_name COLLATE "default" "pg_catalog"."text_ops" ASC NULLS LAST, property_value COLLATE "default" "pg_catalog"."text_ops" ASC NULLS LAST);

-- ----------------------------
--  Foreign keys structure for table jv_commit_property
-- ----------------------------
ALTER TABLE "public"."jv_commit_property" ADD CONSTRAINT "jv_commit_property_commit_fk" FOREIGN KEY ("commit_fk") REFERENCES "public"."jv_commit" ("commit_pk") ON UPDATE NO ACTION ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE;

可以這樣自定義

@Bean
    public CommitPropertiesProvider commitPropertiesProvider() {
        return new CommitPropertiesProvider() {
            @Override
            public Map provide() {
                return ImmutableMap.of("key", "ok");
            }
        };
    }
doc

javers

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67506.html

相關(guān)文章

  • mongodb如何設(shè)計(jì)評論表的表結(jié)構(gòu)

    摘要:談?wù)勅绾卧O(shè)計(jì)評論表的表結(jié)構(gòu)前言打算使用打造一個(gè)博客的后臺,遇到了如何設(shè)計(jì)評論表的困惑,因?yàn)槿绻捎瞄_放評論的模式,就會導(dǎo)致評論的層層嵌套,使得管理和展示都變得非常復(fù)雜。 談?wù)刴ongodb如何設(shè)計(jì)評論表的表結(jié)構(gòu) 前言: 打算使用node+koa+mongodb打造一個(gè)博客的后臺,遇到了如何設(shè)計(jì)評論表的困惑,因?yàn)槿绻捎瞄_放評論的模式,就會導(dǎo)致評論的層層嵌套,使得管理和展示都變得非常復(fù)雜...

    cjie 評論0 收藏0
  • 搞定PHP面試 - MySQL基礎(chǔ)知識點(diǎn)整理 - 存儲引擎

    摘要:支持崩潰后的安全恢復(fù)。的使用場景更新密集的表存儲引擎特別適合處理多重并發(fā)的更新請求。外鍵約束支持外鍵的存儲引擎只有。引擎是及之前版本的默認(rèn)存儲引擎。文件存儲表的索引。引擎存儲引擎是引擎的變種。 MySQL基礎(chǔ)知識點(diǎn)整理 - 存儲引擎 0. 查看 MySQL 支持的存儲引擎 可以在 mysql 客戶端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...

    whatsns 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<