Можно ли хранить все типы значений в качестве типа данных изображения в SQL? - PullRequest
0 голосов
/ 29 февраля 2012

Можно ли хранить данные разных типов как один универсальный тип данных, скажем, «изображение» в SQL?Я также сохраню значение типа данных в другом столбце и буду использовать это значение в своем коде, чтобы преобразовать данные обратно в их правильный тип.Преимущество, которое я получаю от этого, - я могу избежать объединения n таблиц.Может ли кто-нибудь указать мне на недостатки при хранении данных таким образом?

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012

Это довольно плохая идея по нескольким причинам:

  • Производительность запросов будет плохой, поскольку оптимизатор не может использовать индексы, внешние ключи и т. Д., Поскольку они не существуют.
  • Вы не получаете ссылочную целостность и, следовательно, не можете делать никаких предположений о ваших данных.
  • Вы вводите новую дополнительную точку отказа, потому что, если данные не соответствуют указанному типу данных?
  • Человек, которому нужно сохранить код после того, как вы будете ненавидеть вас.
1 голос
/ 29 февраля 2012

Я думаю, вам не следовало бы использовать этот подход по крайней мере по двум причинам.

  1. Как вы заметили, вы постоянно будете приводить типы к вводу и выводу.Я не вижу в этом полезной операции, хотя вижу в ней трудоемкую.
  2. Вы бы обменяли (скромные) трудности объединения N таблиц на (гораздо менее скромную) сложностьсоздание N объединений в ваших единственных таблицах всех матерей.

А затем есть более философский аргумент, который вы предлагаете использовать мультиинструмент (SQL), как если быэто был молоток.Не каждый тип данных всегда гвоздь.Вы будете намного продуктивнее, и я бы сказал, что вам больше понравится ваша работа, если вы будете работать с природой ваших инструментов, а не против самой природы.

И я согласен с тем, что Даниэль Хилгарт уже написал.

...