Re: PostgreSQL CHARACTER VARYING vs CHARACTER VARYING (Length) - Mailing list pgsql-admin

From David G. Johnston
Subject Re: PostgreSQL CHARACTER VARYING vs CHARACTER VARYING (Length)
Date
Msg-id CAKFQuwbH0sB8Rc0LMV77fUkP9c-foqEfzCCDLSusTfaG933Jvw@mail.gmail.com
Whole thread Raw
In response to Re: PostgreSQL CHARACTER VARYING vs CHARACTER VARYING (Length)  (Rui DeSousa <rui@crazybean.net>)
Responses Re: PostgreSQL CHARACTER VARYING vs CHARACTER VARYING (Length)  (Rui DeSousa <rui@crazybean.net>)
List pgsql-admin
On Tuesday, April 28, 2020, Rui DeSousa <rui@crazybean.net> wrote:

Arbitrarily? What’s a cusip, vin, ssn?  Why would you put a btree index on a text field? Because it’s not.

What you’re advocating is a NoSQL design — defer your schema design.  Letting the application code littered in multiple places elsewhere define what a cusip, etc. is. 


All of those would be defined as PKs somewhere with a constraint that limits not only their length but also allowable characters so you don’t get something like !@#$%^&*( as a valid ssn of length 9.  A domain is probably even better though has implementation trade-offs.

A length constraint by itself is insufficient in those examples, which are still arbitrary though the decision is outside the control of the modeler.  If the supplied values are external, which they likely are, the system under design should probably just define the values loosely and accept whatever the source system provides as-is.

David J.

pgsql-admin by date:

Previous
From: Rui DeSousa
Date:
Subject: Re: PostgreSQL CHARACTER VARYING vs CHARACTER VARYING (Length)
Next
From: Rui DeSousa
Date:
Subject: Re: PostgreSQL CHARACTER VARYING vs CHARACTER VARYING (Length)