После экспорта данных из DBF файлов в реляционную Mysql я решил посмотреть на сколько хороша была организована база в Архивном Фоне №3 и пришёл в ужОс, видимо это работа какого то студента на курсаче
for t in *DBF; do dbf_dump --info --SQL $t ; done |grep "create table" | wc -l
38 - таблиц
for t in *DBF; do dbf_dump --info --SQL $t ; done |grep -v "create table" |wc -l
722 поля
И только в главное таблице 142 поля, с характерными именам KOD A10,A100,... . Но нужно отметить, что все поля, назначение, тип и размер, документированы, а то было совсем убийственно
Теперь черты отличающие школьников - однотабличная база, тоесть база в которой не используются связанные таблицы. Например
mysql> select A13 as F,count(KOD)as cnt from FOND group by F order by F;
+---------------------------------------------------------------------------------------------------------------+------+
| F | cnt |
+---------------------------------------------------------------------------------------------------------------+------+
| | 18 |
| дарение | 15 |
| дарение, расп. АО | 7 |
| депозит, расп. АО | 1 |
| исетчение ведомств. срока хран. | 1 |
| истеч. вед. срока хран. | 8 |
| истеч. вед.срока хран. | 1 |
| истеч.вед. срока хран. | 1 |
| истечение вед. срока хран. | 1273 |
| истечение вед. срока хран., ликв. учр. без правопреемника | 2 |
| истечение вед. срока хран., ликв. учр. при правопреемнике | 1 |
| истечение вед. срока хран., расп. АО | 35 |
| истечение вед. срока хранения | 1 |
| истечение ведомств. срока хран. | 1 |
| истечение ведомственного срока хранения | 1 |
| Ликв. учережд. без правопреемника | 1 |
| ликв. учр. без правопреемника | 60 |
| ликв. учр. без правопреемника, расп. АО | 4 |
| ликв. учр. без правоприемника | 1 |
| ликв. учр. при правопреемнике | 98 |
| ликв. учрежд. без правопреемника | 1 |
| Ликв. учреждения без правопр. | 1 |
| ликв.учр.при правопреемнике | 1 |
| ликвид. орган. | 1 |
| ликвидация учреждения без правопреемника | 5 |
| Научно-технич. переработка | 6 |
| научно-техническая обработка,
уточнение фондообразователя | 9 |
| научно-техническая обработка, уточнение фондообразователя | 2 |
| Научно-техническая переработка | 3 |
| расп. АО | 2692 |
| расп.АО | 1 |
| Распор. АО | 1 |
+---------------------------------------------------------------------------------------------------------------+------+
select A12 as F,count(KOD)as cnt from FOND group by F order by F;
+------------------------------------------------------+------+
| F | cnt |
+------------------------------------------------------+------+
| | 1 |
| 5госуд. структ. | 3 |
| 5осуд. структ. | 1 |
| 7госуд. структ. | 1 |
| 9госуд. структ. | 1 |
| гос. структ. | 3 |
| гос. структура | 1 |
| гос.структ. | 1 |
| гос.структуры | 1 |
| госуд. структ. | 3785 |
| госуд. структ., др. госархив | 6 |
| госуд. структ., др. фонд | 4 |
| госуд. структ., негос. структ. | 1 |
| Госуд. структур. | 1 |
| госуд. структура | 2 |
| госуд. структуры | 1 |
| ГОУ "ГАСПИ КО" | 2 |
| др. госархив | 248 |
| др. госархив, др. фонд | 2 |
| др. фонд | 52 |
| др. фонд, неучт. | 5 |
| ёгосуд. структ. | 1 |
| негос. структ. | 64 |
| негос. структ., др. госархив | 40 |
| негос. структура | 5 |
| негосуд. структ. | 1 |
| от граждан | 1 |
| част. лицо | 13 |
| част. лицо, др. госархив | 1 |
| Частное лицо | 5 |
+------------------------------------------------------+------+
Тут видно, как часто ошибались пользователи, а ведь благодаря этим ошибкам некоторые данные возможно не будут найдены. Очевидно же, что если бы перед пользователем был редактируемый список возможных значений то таких косяков не было, и при этом объём базы сократился за счёт исключения дублирования зачастую ошибочных данных
Может кому то ещё понадобится выкладываю структуру базы данных Архивный фонд 3
Описание полей базы данных АФ3