Skip to content

Commit e1f0047

Browse files
author
Clément Fiorio
committed
Foreign key's name reduced
Foreign key does not have to use its column name anymore as it is always a unique constraint name. Add to global doc the ESLint version used to define `.eslintrc` rules.
1 parent 810463b commit e1f0047

File tree

2 files changed

+10
-15
lines changed

2 files changed

+10
-15
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ This repository contains my coding style guidelines.
44
- [PostgreSQL coding guidelines](postgres.md)
55

66
An [`.eslintrc`](.eslintrc) file with pre-configured rules is available if you wish to use [ESLint](http://eslint.org/).
7+
It currently works under `1.10.1` version.

postgres.md

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -208,34 +208,28 @@ CREATE TABLE foo(bar integer, NOT NULL (bar));
208208
CREATE TABLE foo(bar integer NOT NULL);
209209
```
210210

211-
##### `PRIMARY KEY` constraints must be declared into the table declaration WITH explicit column reference.
211+
##### As they are unique, `PRIMARY KEY` constraints must be named based on the `pkey_*table*` pattern.
212212
```sql
213213
-- bad
214-
CREATE TABLE foo(foo_id serial PRIMARY KEY);
214+
ALTER TABLE foo ADD CONSTRAINT foo_foo_id_pkey PRIMARY KEY (foo_id);
215215

216216
-- good
217-
CREATE TABLE foo(foo_id serial, PRIMARY KEY (foo_id));
217+
ALTER TABLE foo ADD CONSTRAINT pkey_foo PRIMARY KEY (foo_id);
218218
```
219219

220-
##### Other constraints must be explicitly named based on the `*key*_*table*_on_*column*(_and_*column*)` pattern (keys are: `fkey` for `FOREIGN KEY`, `key` for `UNIQUE`, `check` for `CHECK`).
220+
##### Other constraints must be explicitly named based on the `*key*_*table*_on_*column*(_and_*column*)` pattern.
221+
Keys are: `fkey` for `FOREIGN KEY`, `key` for `UNIQUE`, `check` for `CHECK`.
221222
```sql
222-
-- bad
223-
CREATE TABLE foo(bar_id integer REFERENCES bar(bar_id));
224-
225-
-- good
226-
CREATE TABLE foo(bar_id integer, CONSTRAINT fkey_foo_on_bar_id FOREIGN KEY bar_id REFERENCES bar(bar_id));
223+
CREATE TABLE foo(foo_id serial, bar_id integer);
227224

228225
-- bad
229-
CREATE TABLE foo(bar text UNIQUE);
226+
ALTER TABLE foo ADD CONSTRAINT foo_bar_id_fkey FOREIGN KEY bar_id REFERENCES bar(bar_id);
230227

231228
-- good
232-
CREATE TABLE foo(bar text, CONSTRAINT key_foo_on_bar UNIQUE (bar));
233-
234-
-- bad
235-
CREATE TABLE foo(bar integer CHECK (bar > 1));
229+
ALTER TABLE foo ADD CONSTRAINT fkey_foo_on_bar_id FOREIGN KEY bar_id REFERENCES bar(bar_id);
236230

237231
-- good
238-
CREATE TABLE foo(bar integer, CONSTRAINT check_foo_on_bar CHECK (bar > 1));
232+
ALTER TABLE foo ADD CONSTRAINT check_foo_on_foo_id_and_bar_id CHECK (foo_id > bar_id);
239233
```
240234

241235
## Indexes ##

0 commit comments

Comments
 (0)