Другие затронули техническую сторону этого, поэтому я хочу добавить другое представление:
Перестаньте на некоторое время прислушиваться к вашим двоичным ощущениям и постарайтесь сосредоточиться на реальных последствиях работы с текущим дизайном. Какие именно проблемы у вас возникнут, если вы начнете использовать его в качестве отправной точки?
- Это займет больше времени для завершения вашего проекта?
- Требуется ли больше людей?
- Требуется ли для работы специальная компетенция?
- Это поставит под угрозу качество данных?
- Это усложняет обслуживание?
- Будет ли это иметь серьезные последствия для производительности?
- Какие последствия это будет иметь для следующего проекта после вашего?
и
- Что нужно сделать, чтобы перейти из текущего состояния в желаемое состояние
- Сколько стоит это сделать
- Каковы последствия для вашего текущего проекта, если вы сначала должны исправить дизайн?
Потому что, в конце концов, такого рода вещи действительно важны. Если вы не можете «продать» идею о том, что дизайн плохой, то на самом деле это не так, и вы просто ругаетесь над вещами, которые не имеют значения ни для кого, кроме нас, гиков, которые также живут в бинарном мире, где NOT(Good) = Bad
.
Конечно, этот столбец bigint можно было заменить на tinyint, и эти столбцы нужно было перенести в другую таблицу, и этот фрагмент повторяющейся логики мог бы быть скрыт за некоторым представлением / функцией, и этот API будет медленнее, чем необходимый , но это все дерьмовые детали, которые могут иметь или не иметь значение в недвоичном мире.
У меня есть любимый стол, который я ненавижу на работе. Приблизительно 1% данных являются противоречивыми и просто неверными. Стоимость очистки этого последнего 1% будет огромной (консолидированные данные из нескольких систем), и ошибки даже не отображаются в десятичных разрядах при агрегировании. На самом деле, у меня есть проблемы. Я не могу добавить конкретное ограничение к таблице. Поэтому вместо этого я должен добавить предикат where для 2 программ, использующих его. Я несколько раз пытался обосновать это, но никто не хочет вкладывать деньги в то, что не является проблемой. И я с ними согласен.