Ce que je voudrais faire est de scanner un disque ou un lecteur (USB, disque dur principal, etc) pour les fichiers et stocker ses informations dans un db. Ensuite, je chercherais le db à un fichier particulier pour trouver où il est stocké. Alternativement je peux chercher comment vieux copys sont pour des raisons d'archivage ou si j'ai des dupes de quelque chose et n'ai pas besoin de le rechercher ou chercher un dupe dans le cas je le sauvegarde volontairement plusieurs fois et un de mon disque était corrompu .Existe-t-il un meilleur moyen de stocker cette base de données?
Voici ce que je pense
os + drapeau fs (1 octet?) st_mode (même si pas dans Linux) 2 octets win32_attr (même si pas sur les fenêtres) 4bytes (cela couvre hiddent, dir vs fichier, verrouillé, etc) taille du fichier (64bits) un/m/c temps, 64bits. index/clé unique comme ID de fichier
Dois-je avoir le nom comme une longueur variable dans sa propre table recherchée par son ID de fichier correspondant? ou devrais-je avoir un nom de fichier de 260 longueur dans le DB ou devrais-je avoir un nom de fichier de longueur variable dans le DB?
Ensuite, j'ai des blobs de bits XYZ requis pour ma somme de contrôle (md5, sha1, sha512, etc, un blob pour chaque) dans une table de contrôle/hachage recherchée par fileID.
Je pensais que ma table de hachage devrait avoir l'ID de fichier (int qui est la même longueur que l'index?), HashType (int), hashValue (varchar).
Qu'est-ce que PK et qu'est-ce qu'un index? Pourquoi ai-je besoin d'eux? J'ajoute la table de hachage que j'avais en tête à ma question afin que vous puissiez mieux expliquer ce qui ne va pas. –
PK === clé primaire de fileId et hash_type, index est un autre index sur fileID. – sfossen
vous liez à la table de fichiers par l'ID de fichier. – sfossen