Форум сайта python.su
Возможно ли на Алхимии описать таблицу, в которой поле одного из столбцов будет списком (желательно переменной длинны)?
Офлайн
Не совсем ясно что вы хотите.
Если буквально понимать то это невозможно в силу ограничений реляционной модели данных. По простому - такого не бывает в базах данных, значит и в алхимии не может быть.
Но
1. С логической точки зрения это отношение один ко многим и оно описано в любом букваре по базам данных. В простейшем случае повторяете пару ключ значение столько раз какова длина вашего списка.
2. Вообще если вы не собираетесь вести поиск по списку то значение может быть blob Ну и храните там что хотите.
3. Есть базы данных типа postgress в которых могут в полях могут храниться json. https://docs.sqlalchemy.org/en/14/dialects/postgresql.html Но надо отдавать себе отчет в том что основная цель алхимии добиться независимости от СУБД. Используя такие фичи вы независимость сразу хороните.
Есть NOSQL СУБД в которых сложные поля норма. Например redis.mongodb. В них работа с такими сущностями гораздо проще чем в реляционных базах. Очевидно у них свои движки. Алхимия к этому никак не применима.
Офлайн
Спасибо, 1 - не подходит, мне нужно, чтобы в поле можно было хранить список целых чисел, альтернатива 3 варианту: хранить в поле текстовой строке, которую преобразовывать в список, что-то делать, потом опять в строку и назад в ячейку, в blob можно прыгать в список и назад?
Если в списке 1000000 целых чисел, возможно ли преобразования строка-список-строка делать без перебора элементов, сразу (учитывая однородность данных)?
Офлайн
vov_kinВ базе данных храни адрес файла. В файле храни числа. Файл храни вообще отдельно.
хранить в поле текстовой строке, которую преобразовывать в список, что-то делать, потом опять в строку и назад в ячейку
Онлайн
В базе данных храни адрес файла. В файле храни числа. Файл храни вообще отдельно.
Это медленно и много файлов
Офлайн
vov_kinВот уже горячее.
Это медленно и много файлов
Офлайн
doza_andЗадача в целом - новая база данных, в которой в определенных столбцах хранятся списки целых чисел (что значит “В питоне списки не бывают однородными”? - если весь список состоит из однотипных данных, разве он не однородный?)
Офлайн
vov_kinВы понятие однородности (homogenius) видели хоть в одном учебнике по питону?
разве он не однородный?)
vov_kinВ любой момент в такой список можно добавить данные другого типа. Сам язык не дает никаких гарантий и никак не учитывает однородность.
если весь список состоит из однотипных данных,
Офлайн
Нет, питоновскую однородность я не понял.
doza_and
В любой момент в такой список можно добавить данные другого типа. Сам язык не дает никаких гарантий и никак не учитывает однородность.
Офлайн
Нет, питоновскую однородность я не понял.
doza_and
В любой момент в такой список можно добавить данные другого типа. Сам язык не дает никаких гарантий и никак не учитывает однородность.
Офлайн