2009-03-09 1 views
0

Что я хотел бы сделать, это сканировать диск или диск (usb, main hdd и т. Д.) Для файлов и хранить его информацию в db. Затем я бы поискал db в конкретном файле, чтобы найти, где он хранится. В качестве альтернативы, я могу поискать, как старые копии копируются по соображениям архивирования, или если у меня есть что-то, и не нужно задирать его или искать обманщика в случае, когда я несколько раз его создавал, и один из моих дисков был поврежден или диск поврежден ,Есть ли лучший способ сохранить эту базу данных?

Вот что я имею в виду

ОС флаг + фс (1 байт?) st_mode (даже если не в Linux) 2bytes win32_attr (даже если не на окнах) 4 байта (это охватывает hiddent, dir vs file, locked и т. д.) размер файла (64 бит) a/m/c время, 64 бит. указатель/уникальный ключ как fileID

Должен ли я иметь имя переменной длины внутри своей таблицы, которую искал соответствующий идентификатор файла? или должен ли я иметь имя файла длины 260 в db или должен ли я иметь имя переменной длины в db?

Тогда у меня есть битны бит XYZ, необходимые для моей контрольной суммы (md5, sha1, sha512 и т. Д., По одной капли для каждого) в таблице контрольной суммы/хэша, которую искал fileID.

Я думал, что моя хэш-таблица должна иметь fileID (int, которая равна той же длине, что и индекс?), HashType (int), hashValue (varchar).

ответ

0

введите имя файла как varchar в таблице файлов, по крайней мере varchar [1024], окна имеют ограничение на общую длину пути в некоторых комбо OS, аналогично ISO CD/DVD.

положить хэш в таблице ассоциации, как:

Hash 
{ 
    fileId int, 
    hash_type int,   -- or enum 
    hash varchar[ 255 ], -- or largest hashtype 
    PK (fileId, hash_type), 
    index(fileID), 
} 

так что вы можете добавлять новые типы хэша позже и позволяете поддерживать не все тип хэша для всех файлов.

+0

Что такое ПК и что такое индекс? зачем они мне нужны? Я добавляю хэш-таблицу, которую я имел в виду на мой вопрос, чтобы вы могли лучше объяснить, что с ней не так. – 2009-03-09 04:27:29

+0

PK === первичный ключ fileId и hash_type, индекс - это еще один индекс в fileID. – sfossen

+0

вы ссылаетесь на таблицу файлов по файлу. – sfossen