Person
Description
Entity to store information about individuals as persons. Each person has a unique ID associated with them.
Table Definition
CREATE TABLE "person" ( "person_id" ULID PRIMARY KEY NOT NULL, "party_id" VARCHAR NOT NULL, "person_type_id" ULID NOT NULL, "person_first_name" TEXT NOT NULL, "person_middle_name" TEXT, "person_last_name" TEXT NOT NULL, "previous_name" TEXT, "honorific_prefix" TEXT, "honorific_suffix" TEXT, "gender_id" ULID NOT NULL, "sex_id" ULID NOT NULL, "elaboration" TEXT CHECK(json_valid(elaboration) OR elaboration IS NULL), "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, "created_by" TEXT DEFAULT 'UNKNOWN', "updated_at" TIMESTAMPTZ, "updated_by" TEXT, "deleted_at" TIMESTAMPTZ, "deleted_by" TEXT, "activity_log" TEXT, FOREIGN KEY("party_id") REFERENCES "party"("party_id"), FOREIGN KEY("person_type_id") REFERENCES "person_type"("person_type_id"), FOREIGN KEY("gender_id") REFERENCES "gender_type"("gender_type_id"), FOREIGN KEY("sex_id") REFERENCES "sex_type"("sex_type_id"))Columns
| Name | Type | Default | Nullable | Parents | Comment |
|---|---|---|---|---|---|
| person_id | ULID | false | {“isSqlDomainZodDescrMeta”:true,“isUlid”:true} | ||
| party_id | VARCHAR | false | party | {“isSqlDomainZodDescrMeta”:true,“isVarChar”:true} | |
| person_type_id | ULID | false | person_type | {“isSqlDomainZodDescrMeta”:true,“isUlid”:true} | |
| person_first_name | TEXT | false | |||
| person_middle_name | TEXT | true | |||
| person_last_name | TEXT | false | |||
| previous_name | TEXT | true | |||
| honorific_prefix | TEXT | true | |||
| honorific_suffix | TEXT | true | |||
| gender_id | ULID | false | gender_type | {“isSqlDomainZodDescrMeta”:true,“isUlid”:true} | |
| sex_id | ULID | false | sex_type | {“isSqlDomainZodDescrMeta”:true,“isUlid”:true} | |
| elaboration | TEXT | true | {“isSqlDomainZodDescrMeta”:true,“isJsonText”:true} | ||
| created_at | TIMESTAMPTZ | CURRENT_TIMESTAMP | true | ||
| created_by | TEXT | ’UNKNOWN’ | true | ||
| updated_at | TIMESTAMPTZ | true | |||
| updated_by | TEXT | true | |||
| deleted_at | TIMESTAMPTZ | true | |||
| deleted_by | TEXT | true | |||
| activity_log | TEXT | true | {“isSqlDomainZodDescrMeta”:true,“isJsonSqlDomain”:true} |
Constraints
| Name | Type | Definition |
|---|---|---|
| person_id | PRIMARY KEY | PRIMARY KEY (person_id) |
| - (Foreign key ID: 0) | FOREIGN KEY | FOREIGN KEY (sex_id) REFERENCES sex_type (sex_type_id) ON UPDATE NO ACTION ON DELETE NO ACTION MATCH NONE |
| - (Foreign key ID: 1) | FOREIGN KEY | FOREIGN KEY (gender_id) REFERENCES gender_type (gender_type_id) ON UPDATE NO ACTION ON DELETE NO ACTION MATCH NONE |
| - (Foreign key ID: 2) | FOREIGN KEY | FOREIGN KEY (person_type_id) REFERENCES person_type (person_type_id) ON UPDATE NO ACTION ON DELETE NO ACTION MATCH NONE |
| - (Foreign key ID: 3) | FOREIGN KEY | FOREIGN KEY (party_id) REFERENCES party (party_id) ON UPDATE NO ACTION ON DELETE NO ACTION MATCH NONE |
| sqlite_autoindex_person_1 | PRIMARY KEY | PRIMARY KEY (person_id) |
| - | CHECK | CHECK(json_valid(elaboration) OR elaboration IS NULL) |
Indexes
| Name | Definition |
|---|---|
| sqlite_autoindex_person_1 | PRIMARY KEY (person_id) |