2013-08-01 3 views
1

Почему класс Django Model CommaSeparatedIntegerField реализован как текст в MySQL, а не то, что он представляет собой: список целых чисел? Это похоже на самую неэффективную вещь!Внедрение CommaSeparatedIntegerField

+5

MySQL не поддерживает поле списка. Следовательно, реализация – karthikr

+0

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

ответ

1

MySQL (и многие RDBMS) не имеют типа «списка» («списки» элементов обычно представляют собой отдельные таблицы, связанные с внешними ключами). Django CommaSeparatedIntegerField - это своего рода хак, позволяющий несколько эффективно хранить списки целых чисел, но как таковой он должен храниться в поле строки.

(По правде говоря, поле не используется в разработке Django больше, но это там, если вам нужно или хотите.)