Я работаю над переносом данных из старой системы на основе IBM Universe в новую систему управления данными и данными на уровне предприятия и изучаю процесс проектирования базы данных.
Я посмотрел навнутреннюю структуру базы данных новой системы (это MS SQL DB, около 100 таблиц), и некоторые вещи выглядят довольно странно.Но я не знаю, является ли моя неопытность причиной, по которой я так думаю, и это просто стандартная практика, или эти странности на самом деле просто плохой дизайн базы данных / приложения.
Например:
- Некоторые поля даты - это varchar (20)
- Поля, в которых хранятся измерения, - это varchar (50), а не что-то вроде десятичного числа и перечисление для хранения единиц измерения
- ISBN 10& 13 числовых полей: varchar (50)
- Некоторые внешние ключи идентификатора поиска - varchar (100), хотя фактический первичный ключ таблицы поиска - int
- Некоторые поляvarchar (0)
- Дополнительные отдельные поля для хранения месяца и года, каждое из которых - varchar (250) - Я не знаю, для какого типа проектного решения потребуется максимум 250 символов длягод, если они действительно не переусердствовали в своем соответствии требованиям 2000 года или решили использовать секунды с начала вселенной для хранения даты и времени
и множества других.БД выглядит как более половины полей varchar.
Я должен также упомянуть, что все поля varchar в БД на самом деле n -varchar - так что это все Unicode, даже те поля, которыетолько номера магазинов.
Есть ли законный аргумент, что использование стольких полей varchar может быть лучшим вариантом, в некоторых обстоятельствах? (гибкость ... может быть...?)