PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 15/12/2016 00:50:43

sanste
Membre

Modele de données

Bonjour,

Je dois développer une interface pour stocker des fichier avec des tags, les tags sont typés:
tag 1: timestamp
tag 2: timestamp
tag 3: integer
tag 4: integer
tag 5: integer
tag 6: integer
tag 7: citext
tag 8: citext
tag 9: citext
Tous les tags seront indexés afin de pouvoir faire des recherches (bonne idée ?)

Etant données que les tags ne seront pas toujours utilisés suivant les utilisateurs, hesite entre:

1/ créer une table file avec tous les tags dedans
CREATE TABLE file(
    id_file BIGSERIAL NOT NULL,
    name citext NOT NULL,
    id_user BIGINT NOT NULL,
    created TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
    size BIGINT NOT NULL

    tag_date1 TIMESTAMP WITHOUT TIME ZONE,
    tag_date2 TIMESTAMP WITHOUT TIME ZONE,
    tag_int1 BIGINT,
    tag_int2 BIGINT,
    tag_int3 BIGINT,
    tag_int4 BIGINT,
    tag_string1 citext,
    tag_string2 citext,
    tag_string3 citext,
);

ou alors
2/ 2 tables
CREATE TABLE file(
    id_file BIGSERIAL NOT NULL,
    name citext NOT NULL,
    id_user BIGINT NOT NULL,
    created TIMESTAMP WITHOUT TIME ZONE DEFAULT now() NOT NULL,
    size BIGINT NOT NULL
);
CREATE TABLE tag(
    id_file BIGINT NOT NULL,

    tag_date1 TIMESTAMP WITHOUT TIME ZONE,
    tag_date2 TIMESTAMP WITHOUT TIME ZONE,
    tag_int1 BIGINT,
    tag_int2 BIGINT,
    tag_int3 BIGINT,
    tag_int4 BIGINT,
    tag_string1 citext,
    tag_string2 citext,
    tag_string3 citext,
);


Merci d'avance pour vos retour

Hors ligne

#2 15/12/2016 09:41:37

ruizsebastien
Membre

Re : Modele de données

Bonjour,

Si tu veux respecter un minimum Merise et les formes normales et blablabla alors la deuxième solution est adaptée.

Hors ligne

#3 15/12/2016 11:46:05

sanste
Membre

Re : Modele de données

Bonjour ruizsebastien,

Effectivement, je suis d'accord avec toi. Mais coté performance, il vaut mieux avoir une table avec plein de champ vide (cas 2) ou alors avoir une table de tag et de fichier sans vide (cas 1) .....

C'est là mon soucis .... hmm

Hors ligne

#4 15/12/2016 11:49:50

ruizsebastien
Membre

Re : Modele de données

le cas 2 me semble plus performant.

Hors ligne

#5 15/12/2016 12:03:17

sanste
Membre

Re : Modele de données

OK merci, je reste sur le cas 2 alors wink

Hors ligne

Pied de page des forums