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

#1 Re : Général » Modele de données » 15/12/2016 12:03:17

OK merci, je reste sur le cas 2 alors wink

#2 Re : Général » Modele de données » 15/12/2016 11:46:05

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

#3 Général » Modele de données » 15/12/2016 00:50:43

sanste
Réponses : 4

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

Pied de page des forums

Propulsé par FluxBB