Разное

Модели столов: 3D модели столов для 3d max

Содержание

15 моделей на все случаи жизни

Современные столы-трансформеры способны менять площадь столешницы, высоту, форму и назначение. Наличие такого предмета в интерьере — несомненный плюс к удобству и способности обстановки «реагировать» на потребности владельца.
Взгляните на нашу подборку столов-трансформеров и выберите для себя самый удобный!

Раскладные столы

Традиционные раскладные столы-книжки среди моделей итальянских фабрик встречаются редко. Их практически вытеснили более удобные раздвижные модели. Раскладной механизм иногда применяется в дизайнерских моделях обеденных и рабочих столов.

Важный плюс столов-книжек — компактность в сложенном виде.

На фото: ультракомпактный стол-книжку Calligaris Spazio в сложенном состоянии можно поставить у стены как консоль.

На фото: дизайнеры фабрики Lago переосмыслили принцип «книжки». Стол Loto способен вдвое увеличить свою площадь благодаря откидным «уголкам».

На фото: столешница стола Calligaris Flexy складывается «в два слоя» благодаря петлям.

В результате площадь стола увеличивается вдвое. Высота ножек также регулируется.

На фото: откидной стол со шкафчиком Calligaris Spacebox. Отличный вариант для квартиры-студии.

Раздвижные столы

Столы-трансформеры с раздвижной столешницей — сегодня самые популярные. Они компактные и эргономичные, быстро и легко трансформируются, бывают прямоугольные, овальные и круглые.

Выдвигаться может как одна боковая секция, так и симметричные «крылья» по бокам. Обычно выдвижные части нужно потянуть на себя из-под столешницы. В нужном положении они приподнимутся, и с щелчком встанут вровень с основной столешницей.

Иногда выдвижные секции служат не для увеличения площади столешницы, а меняют ее геометрию. Например, превращают круглый стол в овальный.

На фото: стол Cattelan Italia Zeus Keramik Drive с керамической ультратонкой столешницей. Боковые секции выдвигаются при помощи телескопического механизма.

На фото: элегантный обеденный стол в современном стиле Cattelan Italia Jerez drive. Стеклянная столешница расширяется при помощи выдвижных боковых секций.

На фото: овальный стол Calligaris Orbital. Стеклянная столешница раскладывается при помощи оригинального поворотного механизма.

Трансформеры с дополнительными вставками

В отдельную категорию можно вынести столы-трансформеры, у которых столешница «наращивается» за счет дополнительных фрагментов. Крепятся они на выдвижные направляющие — либо по бокам стола, либо в центре. В зависимости от модели, храниться модули расширения могут как в подстолье, так и отдельно.

В некоторых моделях размер столешницы зависит от количества вставленных дополнительных модулей — расширить стол можно на 1, 2 а иногда и 5 секций.

На фото: консоль Cattelan Italia Party увеличивает свою длину с 50 до 300 см за счет дополнительных пятидесятисантиметровых столешниц, которые укладываются на раздвижной каркас. Использовать можно от 1 до 5 дополнительных столешниц, в зависимости от нужного размера.

На фото: стол-трансформер Cattelan Italia Ikon Drive с составной столешницей из натурального дерева. Две боковые вставки хранятся под центральной столешницей и устанавливаются при помощи специального крепления, образуя идеально ровную поверхность.

На фото: стол с дополнительными секциями для столешницы Friulsedie Boston T50.

Столы-трансформеры в IB Gallery

В IB Gallery представлены столы-трансформеры на любой вкус: стеклянные и деревянные, раскладные и раздвижные, прямоугольные, круглые и овальные, в классическом и современном стиле.

Если Вы не нашли на нашем сайте подходящую модель, отправьте нам запрос и менеджеры салона IB Gallery подберут для вас стол с нужными характеристиками по каталогам наших итальянских фабрик-партнеров. Задать вопрос можно по телефону +7 (495) 642-83-60.

Виды и разновидности столов, лучшие модели от компании Stulmag.ru

Предметом мебели первой необходимости можно назвать стол. Он имеется в каждом доме, офисе, на различных предприятиях, имеет функциональное назначение или дополняет общий дизайн интерьера. Существует огромное количество типов и видов столов, о которых расскажут специалисты интернет-магазина Stulmag. ru.

Основные разновидности

Производители разных стран мира ежедневно выпускают огромное количество столов, различающихся самыми разными параметрами. Рассмотрим классификацию по функциональному признаку.

Кухонные

Необходимы для приготовления пищи, поэтому, как правило, имеют прочную массивную столешницу, часто выполненную из материалов, устойчивых к воздействию влаги. Нередко снабжаются выдвижными ящиками, закрытыми полками для удобного хранения различной кухонной утвари.

Обеденные

Используются для приема пищи. Могут иметь практически любую форму, размер, выполняются в различных стилях.

Сервировочные

Предназначены для транспортировки блюд и посуды от кухонного стола к обеденному. Обычно имеют небольшие размеры, часто снабжаются дополнительными полочками, могут иметь небольшие колеса для удобства перемещения. Используются в ресторанах, кафе, прочих заведениях общественного питания, отелях, больших домах. Чаще всего изготавливаются из металла.

Стол «Неаполь» Стол «Sevilla» Стол «Kairo»

Письменные

Устанавливаются в кабинетах, библиотеках, офисах, детских комнатах. Изготавливаются чаще всего из натурального массива, МДФ, ДСП. Необходимы для работы с документами и книгами, а школьникам и студентам – для выполнения письменных заданий, поэтому обычно оснащаются выдвижными ящиками для хранения канцтоваров, документов, книг.

Журнальные

Более низкие, чем письменные: за ними можно сидеть на небольших пуфах или невысоких диванах. Предназначены для небольших чаепитий с гостями, хранения журналов, различных бытовых мелочей. Могут выполнять декоративную функцию.

Компьютерные

Имеют много общего с письменными, но, как правило, снабжаются специальным ящиком для системного блока, подставкой под монитор, колонки, полками с особыми прорезями для удобного хранения компакт-дисков (хотя последние с бурным развитием интернет-технологий встречаются все реже).

Туалетные

Имеют небольшие размеры, устанавливаются в спальнях или ванных комнатах для удобного нанесения макияжа, выполнения косметических процедур. Некоторые разновидности таких столов дополнительно оснащаются зеркалом.

Столы-трансформеры

Благодаря особенностям конструкции могут раздвигаться, чтобы вместить больше гостей, занимая в сложенном виде немного места, или превращаться из журнального в обеденный или письменный вариант.

Дополнительные отличия

Помимо функциональных особенностей, столы различаются рядом параметров:

  • материалом изготовления – дерево, ДСП, металл, пластик, стекло, сочетание материалов;
  • формой столешницы – прямоугольные, овальные, круглые, треугольные, имеющие сложную геометрию, предназначенные для установки в угол;
  • размером – существует огромное количество разновидностей. Выбирайте, ориентируясь на имеющееся пространство, назначение предмета мебели;
  • количеством ножек – стандартные четыре, одна центральная, две сплошные боковины и прочие варианты;
  • наличием дополнительных элементов – ящиков, закрытых и открытых полок, подставок, металлических штанг – опорных или декоративных.

Хотите подробнее узнать, какие бывают столы и подобрать подходящий вариант? Свяжитесь с нашими представителями по телефону. Они предоставят подробную информацию и помогут подобрать оптимальную модель. А чтобы купить стол в интернет-магазине Stulmag.ru, просто заполните онлайн-форму заявки на сайте.

современные модели столов с размером столешницы 80 см и детские пластиковые варианты в стиле «лофт»

Ни одна квартира или частный дом не обходятся без стола. Этот предмет интерьера является многофункциональным, и его размещают не только на кухне, но и в спальне, гостиной или детской комнате. Сегодня существует великое множество столов различной формы, но особого внимания заслуживают элегантные круглые модели.

Разнообразие конструкций

В наши дни выбор круглых столов велик как никогда. Подобрать подходящий вариант можно на любой вкус и бюджет. В последнее время большой популярностью пользуются многозадачные изделия с различными механизмами и функциональными конструкциями.

Такие модели обладают рядом особенностей, за которые их так полюбили современные потребители. Стоит познакомиться с ними поближе:

  • Для помещений скромной площади идеально подойдет
    функциональный складывающийся стол.
    Для такой модели не потребуется много свободного места. В сложенном виде эта мебель кажется весьма компактной и аккуратной, но если ее разложить, то перед вами предстанет просторная и удобная столешница, за которой смогут комфортно разместиться не менее 5 персон.
  • Неплохой альтернативой складным считаются раздвижные модели. Такая мебель может иметь разные конструкции, однако чаще всего встречаются изделия, в которых одна половина столешницы является откидной.
  • Мобильными и комфортными в использовании являются столы на колесиках. Подобные модели чаще располагают в гостиной, причем это может быть не только обычная квартира, но и студия. Многие потребители выбирают варианты на колесиках, так как их в любой момент можно передвинуть на другое место, не прилагая лишних усилий и не нанося ущерба напольному покрытию.
  • Разборным является популярный стол-книжка. Зачастую такие модели приобретают для небольших комнат, так как они обладают негромоздким внешним видом и некрупными габаритами. В собранном состоянии размеры таких столов крайне редко превышают маленький комод или тумбу. Сегодня в мебельных салонах можно повстречать мини-столики книжки, которые дополняются колесами.
  • Трендом последних лет является модный стол с вращающейся серединой. Такая мебель не только обновит дизайн интерьера, но и обязательно привлечет к себе внимание ваших гостей. Чаще всего крутящиеся варианты изготавливаются из искусственного или натурального дерева. Используя эту современную и оригинальную мебель, вам не потребуется готовить сразу несколько порций салата или закуски для друзей и родственников, потому как всю еду можно будет просто расположить на двигающемся подиуме, с которого каждый человек достанет то, что ему захочется.
  • Большой популярностью у современных покупателей пользуются поворотные круглые столики. В этих конструкциях столешница поворачивается на прямой угол, а верхняя часть приподнимается. После этих манипуляций можно смело опускать подстолье мебели.
  • Синхронно-раздвижными являются круглые столы с механизмом под названием «бабочка». Чтобы разложить такую мебель, необходимо потянуть за один край столешницы, после чего она разойдется по центру и разъедется. Для этого придется лишь достать дополнительный элемент из-под основания стола и установить его в появившееся свободное место.
  • Очень удобными в эксплуатации являются столы с регулируемой высотой. Такие конструкции могут иметь не только обеденные, но и компьютерные модели. Работать за ними очень удобно, так как вы сами сможете делать их высокими или низкими по своему усмотрению.

Во многих регулируемых экземплярах предусмотрена возможность изменения угла наклона столешницы. Как правило, такие конструкции изготавливаются на прочном металлокаркасе, который не выйдет из строя даже через много лет использования.

Также круглые столы могут иметь различные опоры. Самыми распространенными являются изделия на четырех ножках. Эти модели отличаются неплохой устойчивостью. Если же вы ищете более оригинальный и изысканный вариант, то вам стоит присмотреться к небольшим круглым столикам на одной плотной ножке.

Размеры

Диаметр круглого стола напрямую зависит от количества сидячих мест:

  • 3-4 места – 90-100 см, 120 см.
  • 5-6 мест – 120-140 см.
  • 7-8 мест – 140-180 см.

Самыми маленькими являются столики с диаметром 60-80 см (на 2 персоны).

Материалы

Современные круглые столики изготавливаются из различных материалов. Рассмотрим подробнее отличительные характеристики каждой модели.

Деревянные

Экологичными и долговечными являются конструкции из дерева. Этот добротный и привлекательный материал способен привнести в любой интерьер нотки тепла и уюта. Лидирующие позиции на современном мебельном рынке принадлежат моделям из дуба, ротанга, сосны, березы, гевеи, ольхи и ореха. В последнее время большой популярностью пользуются уникальные изделия из слэба. В таких конструкциях столешница представляет собой цельный кусок дерева с натуральным оттенком и рисунком. Эта мебель относится к категории «эко».

Также стоит выделить оригинальные плетеные столики круглой формы из ротанга. Подобные варианты смотрятся органично в условиях загородных и частных домиков. Их можно поставить не только в обеденной зоне, но и на веранде или возле бассейна в комплекте с ротанговыми стульями. Но за таким изделиям необходимо регулярно ухаживать.

Чтобы деревянный стол прослужил долго и не потерял товарного вида, его следует обрабатывать специальными пропитками, которые будут защищать натуральный материал от пересыхания и растрескивания.

ЛДСП, МДФ, фанера

Более доступными по цене являются лаконичные столы, изготовленные из таких материалов, как ДСП, МДФ или фанера. Подобное сырье является довольно износостойким и зачастую имитирует натуральное дерево, но оно гораздо дешевле и проще. Экземпляры из фанеры и вовсе можно изготовить своими руками.

Стоит отметить тот факт, что недорогой ЛДСП является токсичным материалом, так как в нем присутствуют формальдегидные клеевые составы.

Такие вещества являются опасными для здоровья человека, поэтому специалисты рекомендуют немного доплатить и купить более безопасные изделия из ЛДСП класса «Е-1» или шпонированные варианты.

Металлические

Благодаря прочным конструкциям и надежным креплениям, самыми прочными и долговечными являются металлические столы. Подобные модели не требуют специального ухода и выглядят весьма привлекательно, особенно если их дополняют правильно подобранные металлические стулья. Оригинально выглядят чугунные столы с деревянными столешницами. Чаще всего такие модели располагают в уличных и крытых кафе. Как правило, они имеют большой вес.

Если вы хотите подобрать модный вариант для интерьера в современном стиле, то вам стоит ознакомиться с хромированными столами, а в более изысканных и элегантных ансамблях лучше всего будет смотреться изящный кованый столик.

Выбор оптимального варианта во многом зависит от стилистики помещения.

Каменные

Дорого и нарядно во многих интерьерах смотрятся каменные столы. Материал может быть как искусственный, так и натуральный. С помощью такой мебели можно придать интерьеру особую роскошь и обратить внимание на отличный вкус хозяев жилища. Однако чаще всего такие модели стоят недешево, особенно это касается шикарных мраморных вариантов.

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

Пластиковые

Пластиковые круглые столы являются самыми доступными по стоимости. Изделия из этого недорогого материала будут служить долго, не доставляя никаких хлопот. Пластик не подвержен гниению или растрескиванию.

Но не стоит располагать пластиковые цветные столики под прямыми солнечными лучами. В таких условиях материал может утратить насыщенность цвета.

Стеклянные

Стеклянные круглые столики отличаются изысканным и привлекательным внешним видом. Такие модели смотрятся особенно гармонично в современных интерьерах. Относиться к стеклянным вариантам нужно максимально аккуратно и бережно, чтобы не повредить хрупкому материалу.

Также подобные столешницы нужно почаще протирать, так как они являются маркими, и на них легко остаются отпечатки пальцев, портящие вид мебели.

На современном мебельном рынке присутствуют не только каменные, металлические, деревянные или стеклянные, но и эффектные керамические и модели, украшенные цветной плиткой. Сегодня потребители могут подобрать подходящий вариант для интерьера любого стиля, будь то изысканная классика или шокирующий авангард.

Преимущества формы и уход

Круглые, полукруглые или овальные столы отличаются элегантным и аккуратным дизайном. С помощью такой мебели можно смягчить и придать изысканности даже самым простым или грубоватым интерьерам. Кроме того, стоит отметить негромоздкий внешний вид такой мебели. Особенно это касается привлекательных раскладных или раздвижных моделей.

Однако далеко не всякий круглый стол можно удобно расположить у стенки из-за его не угловатой формы. Для этих целей лучше приобрести оригинальный угловой столик, пользоваться которым будет максимально комфортно.

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

Если же вы хотите обновить дизайн старого стола, то в этом вам поможет только реставрация. Для этого нередко производится полировка покрытий или перетяжка обивочных материалов.

Современные дизайнерские решения

Круглые столы смотрятся органично во многих стильных интерьерах. Ниже рассмотрены несколько современных дизайнерских решений:

  • В «чердачные» интерьеры в стиле «лофт» прекрасно вписываются как хорошо отполированные и аккуратные, так и грубоватые модели столов, так как подобное направление представляет собой смешение деталей, присущих разным стилям.
  • Красивый интерьер в скандинавском стиле можно дополнить круглым столиком прохладного или белоснежного оттенка. Чтобы ансамбль с такой мебелью не казался слишком «холодным», его следует разбавить деревянными коричневыми стульями и привнести декор в теплых тонах (шоколадных, нежно-зеленых, кремовых).
  • Классический стиль предусматривает присутствие в интерьере натуральной и высококачественной мебели. В подобном ансамбле будет неплохо смотреться деревянный столик с резными деталями и изогнутыми ножками. Кроме классики, такому интерьеру подойдет антикварный столик, покрытый лаком.
  • Воздушный стиль прованс можно дополнить красивым светлым или пастельным столиком из натурального дерева. На столешницах прованских изделий может красоваться цветочный декупаж.
  • В стиле винтаж наиболее гармонично будет смотреться старинный (антикварный) или искусственно состаренный столик. Он может обладать изысканными коваными элементами или деревянными деталями изящных форм.
  • Для интерьера в направлении модерн стоит присмотреть элегантный круглый столик с опорами идеально правильных форм и линий. Они могут пересекаться друг с другом, образуя геометрические композиции.
  • Очаровательный светло-коричневый вариант будет выглядеть органично в нежном интерьере, выполненном в нейтральных, светлых и спокойных тонах. Если дополнить его подходящими стульями с мягкой обивкой, то комплект будет выглядеть особенно привлекательно и уютно.
  • Роскошный стол модного цвета венге лучше всего располагать в помещениях со светлой стеновой отделкой. На таком фоне подобная мебель будет эффектно выделяться и привлекать к себе внимание. На пол можно положить плитку или ламинат темно-шоколадного, темно-серого или светлого тона. В таких цветовых условиях круглый стол венге будет смотреться наиболее гармонично.
  • Чувственный красный столик рекомендуется располагать на контрастном фоне в помещении. Например, это могут быть белые, бежевые или даже темные стены. Такую мебель ни в коем случае нельзя оставлять неподкрепленной декоративными элементами или другими предметами красного оттенка. Например, можно использовать стеклянные или пластмассовые вазы на полках или живые цветы аналогичной расцветки.
  • Преобразить интерьер и вдохнуть в него жизнь можно при помощи оригинального столика с фотопечатью. Однако такие модели рекомендуется располагать только в тех комнатах, которые отделаны в спокойных и неброских тонах, иначе общий образ интерьера станет слишком пестрым.

Как правильно выбрать: рекомендации

Подбирая элегантный круглый столик, следует учитывать следующие нюансы:

  • Такую мебель можно приобрести как на кухню, так и в гостиную, прихожую или спальню. Для последних вариантов рекомендуется покупать модели компактных или средних (подойдут трансформеры) размеров, так как они не будут мешать проходу в комнатах, зато ненавязчиво дополнят собой имеющийся интерьер. Для коридора, особенно если он узкий, идеально подойдет модель размера мини.
  • В гостиной будет отлично смотреться аккуратный придиванный столик. Как правило, ставится такая мебель перед мягким уголком или сбоку от подлокотников. Можно расположить по обеим сторонам от дивана два столика с круглыми столешницами и поставить на них осветительные приборы, вазы с цветами или декоративные мелочи.
  • Для переговоров подойдет солидный и крупный стол, рассчитанный на несколько персон. Он может быть круглым или овальным.
  • Мебель должна обладать хорошим качеством. Такими характеристиками может похвастаться продукция известных мебельных брендов из Малайзии, Германии, США и Италии. Стоят такие модели дорого, зато служат долго и выглядят прекрасно.

Круглый столик можно сделать своими руками. Процесс изготовления смотрите в следующем видео.

раздвижные модели для кухни, обеденные столы-трансформеры с керамической столешницей

Стол – необходимый предмет мебели на кухне. Если комната настолько мала, что его негде поставить, существует масса дизайнерских идей, с помощью которых столешницу можно трансформировать буквально из ниоткуда: стены или гарнитура.

Особенности

Кухонный раскладной стол бывает двух видов: рабочий и обеденный. Добавочные поверхности для приготовления пищи раскладываются из модулей гарнитура и находятся в рабочей зоне. Обеденные столы немного удалены от рабочего места. Чтобы не занимать лишнего места в кухне, их делают компактными, но с функцией раскладывания.

Не стоит думать, что трансформирующаяся мебель – удел только маленьких комнат. Красивые добротные столы различных форм и размеров могут иметь раскладывающиеся элементы, чтобы стать еще больше и вместительнее.

Каждый тип раскладного механизма имеет право на существование, так как надежен, прост и легок в управлении.

Столы могут раскладываться, выдвигаться, раздвигаться, откидываться. За столетия работы с преображающимися механизмами промышленность довела их до совершенства.

Преимущества и недостатки

Выбирая стол, люди пытаются решить одновременно две противоположные задачи – они хотят от него вместительности и незаметности. Чтобы понять, насколько эти задачи выполнимы, рассмотрим достоинства и недостатки раскладных столов.

Столы-трансформеры имеют немало достоинств:

  • компактность позволяет им быть почти незаметными, но при необходимости превращаться в полноценный стол;
  • многие виды изделий достаточно функциональны, они имеют дополнительные ящики и полки;
  • для изготовления столов подходит только качественный материал, так как им предстоит многоразовое раскладывание, поэтому изделия надежны и долговечны;
  • некоторые модели столов в сложенном виде не только занимают мало места, но еще и прячут в своей конструкции складные стулья;
  • большое разнообразие видов с разными механизмами, формами, из всевозможных материалов, позволяют выбрать стол в конкретную кухню с учетом отведенного места и стиля.

К недостаткам можно отнести сложность в выборе места, особенно это касается выдвижных и откидных изделий. В собранном виде они незаметны, но когда стол устанавливается и «обрастает» стульями, он требует определенного пространства. Отмечается стоимость раскладных моделей, которая выше, чем у обычных столов, так как для их изготовления используются дополнительные материалы.

Виды

Трансформеры очень многообразны, они различаются друг от друга по размеру, форме, цвету, материалу. Но главное их отличие заключается в механизме раскладывания, который приводит к увеличению столешницы. Рассмотрим подробнее каждый метод трансформации.

Стол-книжка, или «бабочка»

Столы-книжки известны давно, они очень популярны из-за простого и надежного способа раскладывания. Этот стол был любимым предметом мебели в советских «хрущевках». В тесных условиях идеально иметь узкую тумбу у стены, она почти не занимает место. Если приходят гости, хозяева переставляют тумбу к дивану и подымают боковые поверхности, которые за минуту до этого свисали на петлях. За боковинами прячется изящная, но прочная нога-подпора, она устанавливается по диагонали, а боковая поверхность ложится сверху.

Так, в одно мгновение, небольшая тумба превращается в огромный стол. Если приходит немного гостей, достаточно поднять оду боковину.

В советское время стол-бабочка имел немного видов. Более тяжелая тумба оснащалась полочками и даже дверками. Облегченный вариант в сложенном виде представлял собой пустую тумбу, на поверхность которой можно было поставить только несколько фотографий или статуэток. Современные столы-книжки более многообразны:

  • облегченные варианты выполняют только функцию столов, которые не имеют дополнительных мест хранения;
  • полноценная тумба-стол с функциональной системой хранения, скрытой за дверцами;
  • тумба раскладного стола оснащена выдвижными ящиками;
  • односторонний стол-книжка с открытыми полочками;
  • стол для небольших кухонь с маленькими «крыльями»;
  • столы имеют разные виды подпорок: по одной с каждой стороны или по две, выставляются по диагонали, по центру, по краям.

Складной поворотный

Поворотный механизм бесхитростный и понятный. На его основе придумали несколько вариантов столов.

  • Метод раскладывания конструкции крайне прост. Небольшой столик имеет двойную столешницу. Чтобы ее разложить, сначала поворачивают поверхность на 90 градусов, а потом раскрывают, как книгу.
  • Полноценная функциональная тумба содержит на своей поверхности облегченный столик, который имеет только столешницу и одну боковину на роликах. Стоит только потянуть, и столик отъедет, затем развернуть, и получится барная стойка.
  • Существуют дорогие виды столов с механическим поворотом. Стоит лишь слегка потянуть столешницу, и она развернется, самостоятельно устанавливаясь на положенное место.

Раздвижной

Столешница состоит из двух половинок. Чтобы разложить конструкцию, необходимо раздвинуть ее в разные стороны.

Под поверхностью стола находится секция, которую следует вынуть и уложить по центру. Так столешница из трех частей образует единое целое.

Откидной

Откидные столы – гениальная конструкция для маленьких кухонь. В сложенном виде они представляют собой панель на стене. Когда приходит время обеда, столешницу просто опускают вниз. Дизайнеры разработали множество моделей откидных столов, каждый может подобрать оптимальный вариант для своей кухни.

  • К стене крепится узкая панель, на которую можно поставить только несколько чашек. Вниз свисает столешница.
  • Еще более компактный вариант, который даже не имеет узкой панели. На стену монтируется поворотная ножка, а к ней – небольшая столешница. В сложенном виде такая конструкция представляет собой столешницу, вертикально закрепленную на стене.
  • Для тех, кто считает, что в маленькой кухне радиатор занимает расточительно много места, придумана модель откидного стола, «поглощающая» в себя батарею. Удобная многофункциональная конструкция два в одном. Но есть недостаток – в сложенном виде такой стол мешает циркуляции теплого воздуха.
  • Для минималистических стилей придумана конструкция в виде очень узкого настенного шкафа, куда входит столешница. Шкаф-панель обыгрывают цветовым решением либо выбирают оттенок в тон стены и полностью растворяют в пространстве, либо окрашивают в броский цвет и превращают в простой аскетический декор в виде яркого пятна в помещении.
  • Существует практичная конструкция, которая совмещает удобный подвесной шкаф со столешницей. Модель подходит для стилей минимализм, модерн, урбанистических направлений, так как в собранном виде представляет собой короб на стене, закрытый со всех сторон.
  • Кухни с достаточным пространством тоже применяют откидные модели. Но они могут себе позволить закрепить их не на стене, а по центру комнаты на инсталляции. Выглядит конструкция как предельно узкий остров с двумя откидными панелями.

Выдвижной

Стол раскладывается методом выдвижения, то есть выезжает из стационарной мебели. При этом не всегда в готовом варианте бывает телескопическое складывание или поворотное.

  • Барная стойка на роликах выкатывается из боковой тумбы. С помощью реечного паза, закрепленного на гарнитуре, столешница может путешествовать по кухне, перемещаться на любое расстояние.
  • Иногда из рабочей стенки выезжает столешница, которая ломает представление о пространстве. Трудно поверить, что она могла поместиться в отведенном ей месте.
  • Такое же впечатление оставляют телескопические конструкции, когда из обычного кухонного ящика появляется вместительный столик.
  • Иногда телескопическим способом стол выезжает из небольшого короба на стене, представляя собой модель трансформера.
  • Чтобы увеличить площадь столешницы, спрятанной в стационарной мебели, ее выдвигают и раскладывают как книжку, или другим способом.
  • Выдвижные столешницы скрываются не только в гарнитуре. Иногда их маскируют в островном элементе.

Материалы

Для стола, особенно трансформирующегося, важно, чтобы он был прочным, устойчивым, долговечным. Частое раскладывание может повлиять на его износостойкость. Чтобы конструкция не подвела, любой выбранный материал должен иметь отменное качество.

Кухонный стол в обеденной зоне – довольно заметный предмет мебели в интерьере. Несоответствие материала общей стилистики внесет дисгармонию в обстановку. Поэтому выбирая стол, обязательно следует учитывать дизайн помещения. При разнообразии материалов сделать правильный выбор несложно.

Стекло

Стеклянные столы в наших кухнях нельзя назвать частым явлением, многие считают их непрактичными. Но есть ситуации, когда такой материал оправдывает себя. В маленьких комнатах при правильном дизайне прозрачный столик будет пропускать сквозь себя пространство, он не только его не уменьшит, но даже добавит объема.

Стеклянные столы отлично подыгрывают некоторым стилям, таким как фьюжн, модерн, минимализм.

Но стоит помнить, что ежедневное использование стеклянной поверхности для принятия пищи потребует частого и тщательного ухода. Поэтому такие столы себе позволяют холостяки, которые редко питаются дома. Или хозяева больших столовых, у которых несколько столов в интерьере.

Для изготовления стола подходит каленое высокопрочное стекло, покрытое прозрачным защитным слоем, предохраняющим от царапин и прочих повреждений. Это многослойная водоотталкивающая структура, хорошо реагирующая на перепады температур, а значит, горячий пролитый кофе ей не повредит. Крепления выбираются изящные, но особо прочные, способные выдерживать частое раскладывание.

Стеклянные столы производят правильной геометрической формы. Кроме прозрачных вариантов, выпускают тонированные, с рисунком, глянцевым покрытием, оформленные фольгой и лаком.

Дерево

Еще столетие назад деревянная мебель была обычным делом для каждой семьи независимо от материального состояния и сословия. Сегодня изделия из массива стоят дорого, поэтому повсеместно нашла свое применение древесно-волокнистая продукция (МДФ).

Древесина – экологически чистый натуральный материал. Каждая порода дает свой неповторимый оттенок и рисунок. При тактильном контакте ощущается, насколько приятно дерево, оно источает тепло и уют. Поэтому комфортные деревенские стили в своих интерьерах предпочитают видеть только древесину.

Прежде чем изготовить мебель, дерево обрабатывают противогрибковыми пропитками. На раскладные столы идет материал из твердой древесины: ясень, дуб, орех, бук. Реже применяют породы средней твердости: береза, ольха, вишня. Изделия из мягкого материала легко поддаются механическим повреждениям. Столы выглядят очень красиво, но боятся контакта с водой и требуют более тщательного ухода.

Шпон

Сегодня самый большой процент мебели изготавливается из плит МДФ и ДСП, они относятся к бюджетным материалам. Шпон представляет собой тонкие листы древесины (0,1-10 мм), которые клеятся на прессованные плиты, создавая имитацию настоящего дерева. Столы, произведенные таким образом, достаточно прочные, они содержат рисунок и цвет любой, даже экзотической древесины. Их можно мыть, они устойчивы к царапинам, но, как и натуральный массив, не любят длительного контакта с водой.

К тому же частое соприкосновение шпона с горячими блюдами может привести к пересыханию клея и деформации поверхности стола.

Металл

Столы, полностью сделанные из металла, трудно представить на домашних кухнях. Ими оборудуют столовые, производственные цеха, а жилой уютный интерьер может выдержать только фрагменты холодного металла. Чаще всего из него изготовляют ножки и основание под столешницу. Крепость материала позволяет создавать тонкие, но надежные опоры, а саму столешницу производят из стекла, древесины или МДФ. Изящество и блеск стекла особенно удачно сочетается с утонченными холодными формами металла.

Пластик

Для изготовления раздвижных столов используются прочные виды пластика, способные выдерживать высокую температуру, не терять свой внешний вид при контакте с горячими предметами. Пластиковым столам не страшна вода, за ними легко ухаживать. Современные виды изделий хорошо моются бытовой химией без ущерба для них. Такие столы недорогие, легкие, их можно переставлять в любое место хоть каждый день.

К отрицательным моментам относятся швы, которые часто видны на изделии, иногда они источают неприятный запах, во время возгорания токсичны и выглядят не так изысканно, как натуральные материалы.

Камень

Натуральный камень из-за большого веса не используют для изготовления раскладывающихся столов. Из него производят тонкую облицовочную плитку, которой и покрывают изделие. Каменные столы красивы, прочны, устойчивы к перепадам температуры. Но пористый материал впитывает жидкость. Если, например, на мраморную поверхность пролить кофе и вовремя не убрать, пятно на ней останется навсегда. Камень не любит воздействия бытовой химии и стоит слишком дорого.

Можно приобрести раскладной стол из искусственного камня (кварцевого или акрилового). Его изготавливают из полимерной смолы и крошки натурального камня. У этого материала нет проблем с пористостью, он отталкивает воду. Искусственный камень устойчив к разным температурам, легко поддается уходу и выглядит вполне прилично.

Керамика

Столешницы для раскладных столов из керамики изготовляют по нескольким технологиям. В одном случае керамический слой просто укладывают на подготовленную основу. Требования по уходу за таким столом будет как и к обычной плитке – она нормально реагирует на бытовую химию, но боится применения абразивов. Второй способ заключается в соединении керамики и стекла.

Столешницы часто устанавливают на металлические ножки, но иногда за основу берут и древесину.

Как выбрать?

Прежде всего необходимо определиться с размером изделия. На величину стола влияют три фактора: выделенное для него место, количество домочадцев и как часто в доме бывают гости.

От места во многом зависят конструктивные особенности модели. Стол относится к раскладным изделиям, значит, ему предстоит увеличиваться в ту сторону, где для него предусмотрено пространство.

Если есть небольшая территория перед свободным участком стены, можно приобрести откидной пристенный стол. П-образная планировка гарнитура не оставляет открытых стен, здесь понадобится выдвижной вариант, выезжающий из секции мебели.

Для более просторной кухни или столовой можно себе позволить полноценный обеденный стол с функцией раскладывания.

Выбирая изделие, следует обратить внимание на его функциональность. Стол может быть с полками, ящиком или закрытой тумбой. Форма, цвет, фактура и материал конструкции зависят не только от вкуса хозяина, но и от стиля интерьера.

Размеры и формы

Формы столов чаще всего бывают квадратные, прямоугольные, круглые, овальные. Выбирая стол в кухню, нужно учитывать, что круглый или овальный вариант не подойдет для маленьких помещений. Их невозможно поставить в угол, к тому же окружность предполагает расстановку стульев со всех сторон. Если стиль крохотной кухни требует плавных линий, приобретается полукруглый стол, который срезом ставится к стене.

Круглые и полукруглые модели устанавливают в центре комнаты, они красивы и торжественны. Из-за отсутствия углов за ними может разместиться большое количество гостей.

Квадратные и прямоугольные столы подходят любым метражам и стилям. Они легко раскладываются, их традиционная форма более привычна для современных пользователей.

Размер выбираемой модели напрямую зависит от выделенного для нее места. Стандартные изделия не превышают высоту 75 см, а размеры столешниц – 70х70 см или 70х100 см.

Современный производитель часто отходит от намеченных стандартов в пользу разнообразия конструкций и удовлетворения покупательского спроса.

Цвет и дизайн

Разнообразие раскладных столов позволяет ввести их в любой дизайн интерьера. Они имеют богатую цветовую палитру. Если взять древесину, каждое изделие наделено своим особым рисунком и оттенком. Даже стеклянные столешницы не лишены разнообразия. Кроме прозрачных вариантов, они бывают спокойного дымчатого цвета или с яркой фотопечатью.

Трансформеры подойдут любым стилям, нужно лишь правильно подобрать их материал и цвет. Например, деревенские и этнические направления предпочитают древесину, а индустриальные стили будут не против конструкций из стекла и металла. Остановимся подробнее на стилизованных моделях.

Шибби-шик

Это направление характеризуется светлыми, почти вылинявшими оттенками и представляет собой «состаренное великолепие». Дорогая мебель выглядит так, будто она простояла несколько столетий. Раскладной стол должен иметь несовременные формы, а его поверхность быть выбеленной и состаренной разными техниками.

На фото показано, как можно своими руками реставрировать складной сервировочный столик в стиле шебби-шик.

Прованс

Мебель в стиле французской деревни тоже имеет почти антикварный вид, но в отличие от шебби-шик ей не нужно подчеркивать роскошь, достаточно реставрировать бабушкин стол, главное, чтобы он был из натурального дерева.

Хай-тек, минимализм

Эти стили предпочитают четкую геометрию, холодный блеск стекла и металла и в тоже время практичность и функциональность.

Лофт

Стиль зародился в огромных помещениях брошенных фабричных цехов. В его интерьере используется кирпич, дерево, много металла. На фото представлено изделие, ножки которого отражают индустриальную тематику.

Раскладной стол незаменим на современных кухнях, он цивилизовано решает проблему приема гостей. А иначе, чтобы всех рассадить, пришлось бы сдвигать несколько разноплановых конструкций.

О том, как сделать раскладной стол своими руками, смотрите в следующем видео.

Обзор столов для работы сидя-стоя / Хабр

За последние 4-5 лет тема столов для работы сидя-стоя из диковинной стала обыденной, один из хабровчан даже опубликовал статью про поиск и выбор такого стола, но в статье, к сожалению, на выбор были предложены только два варианта. Зато его статья послужила поводом самому «побороздить» просторы интернета и сделать более расширенный обзор, какие вообще бывают варианты столов для работы сидя-стоя, чем они отличаются и, по возможности, сколько денег стоят.


В процессе поиска пришла идея как-то систематизировать полученные результаты, что из этого получилось:

В конце статьи, после обзора основных «мировых тенденций», приведены варианты столов доступные в продаже в России.

1) «Надставки», которые просто ставятся на обычный стол.

Большей частью это разновидность «коробки-скамейки», которая просто ставится на обычный стол, и используются как дополнительная поверхность:

В виду простоты конструкции вариантов таких надставок много, все их перечислять смысла нет, некоторые пользователи идут по простому и бюджетному пути и используют для этих целей пустые коробки или комбинацию доска+пара коробок.

Однако, среди этого, порой, далеко не бюджетного, однообразия надставок выделяется пара конструкций, которые выводят надставки на следующий эволюционный уровень:

2) Столы, которые оснащены механизмами для изменения высоты столешницы для чередования положения сидя — стоя.

Как оказалось, существует приличное множество механизмов регулировки высоты. Мне удалось найти следующие типы:

2.1) Наиболее раскрученная и соответственно популярная линейка – это столы с электроприводом.

2.2) Другая группа столов – с пневматической регулировкой высоты (на газлифте). Отличаются от электрических отсутствием потребности в постоянном электропитании, регулируются с помощью блокируемых газовых пружин (газлифтов), достаточно неприхотливые в обращении, но, как и любой подвижный механизм имеют свои нюансы.

2.3) Отдельно стоит выделить столы с хитрым механизмом контргрузов, понять до конца принцип работы так и не получилось, но похоже там тоже «запрятана какая-то пружина».

Судя по видео – очень интересная конструкция, ходит плавно, без особых усилий, но ширина столешницы в 60 см как-то маловато, монитор получается совсем впритык, а навесная полка для клавиатуры не позволяет облокачиваться на нее во время работы стоя, или расположить на нее руки при работе сидя.

2.4) Еще один экзотический тип – регулировка с помощью рукоятки через шестерни, бальзам ну душу для всех любителей ретро авто, в момент ностальгии, можно покрутить «ручку генератора» не отходя от рабочего места.

2.5) Еще одна необычная конструкция стола с ручной регулировкой — двухсекционная столешница с одной подъемной секцией:

Как обстоят дела со столами непосредственно в России.
В РФ наиболее раскрученный в интернете вариант это столы с электроприводом Conset и Swedstyle. Их под разными вывесками предлагают:

Кроме трендовых Conset и SWEDSTYLE также попались другие менее яркие представители, которые тем не менее представляют интерес.

Небольшие пояснения — многие компании предлагают несколько моделей столов, соответственно для статьи брались выборочно только 1-2 модели.

Безусловно допускаю, что список российских компаний может быть не полным и есть другие компании, которые изготавливают или торгуют подобными столами в РФ.

Буду признателен всем пользователям кто готов поделиться в комментариях информацией о других компаниях в России, которые предлагают столы для работы сидя-стоя.

P.S.: еще одна необычная и интересная конструкция:

P.P.S.: Продолжим обзор новинок доступных в России. Оказывается, уже год как выпускается модель стола с электрической регулировкой высоты произведенная в России — Volt

50 новых моделей • Интерьер+Дизайн

Salone del Mobile Milano (9–14 апреля 2019) — важнейшее событие для европейских дизайнеров интерьера. Тысячи квадратных метров в выставочном центре в пригороде Ро, сотни новинок от авторов и брендов со всего мира. Как всегда в фокусе — дизайн Made in Italy.

По теме: Миланская неделя дизайна: 10 мультисенсорных проектов

Обеденные столы и кофейные столики — обязательные предметы дневной зоны дома — столовой и гостиной. К их форме и материалу приковано особое внимание.

Стол Abbondio, диз. Мориц Баннах, Bannach. Стол Duale, колл. Futuraforma, диз. Marcante-Testa, SEM (Spotti Edizioni Milano). Стол Piece of a Pie, диз. Джонатан Завада, Matter Made / Spotti Milano. Cтол Mawari, диз. Gunther Pelgrims. De Padova. Dolmen, диз. Джулио Каппеллини, Cappellini. Обеденный стол Rolf Benz 968, диз. Тиш Вебер, Rolf Benz. Стол Canal, диз. Патрисия Уркиола, Riva 1920. Стол Ava, диз. Норман Фостер, Molteni&C. Wedge, диз. Nendo, Minotti. Wedge, диз. Nendo, Minotti. Стол Henry, диз. Эммануэль Галлина, Poliform. Parallel Structure, диз. Майкл Майкл Анастасиадис, B&B Itala. Cтол Bolero Ravel, диз. Роберто Лаццерони. Poltrona Frau. Стол Atlas, Collection IV, Part II, диз. Ини Арчибонг, Se Furniture. Стол Mellow, диз. Bartoli design, Bonaldo. Столик Kylo, диз. Алессандро Ла Спада, Visionnaire. Стол Flint, колл. Nest, Smania. Стол Frame, диз. Studio Vertijet, KFF + ASCO. Стол Girder, Clan. Стол Fila, диз. Константин Грчич. Plank. Стол из колл. Vine, Turri. Стол Strong, диз. Эжени Китле, Desalto. Стол Piano, диз. Nava+Arosio Studio, Rubelli Casa. Стол Davide, Contrada Erasmo. Стол First, диз. Baldessari e Baldessari, Baleri Italia.

Общие тренды — пассеизм, выразительная скульптурная геометрия, кастомизация — топовые бренды развивают, беря за основу  рационалистическую архитектуру 50-60-х годов и постмодернизм 80-х. В качестве материала для столешниц возвращается стекло, а контрастные материалы (выразительный мрамор и простой металл, дерево и сталь) предпочтительнее моно-выбору.

Стол Geo, диз. Кристоф Делькур, Delcourt Collection. Graphium, диз. Гарсиа Кумини, Zanotta. Кофейный столик Turkana, Cavalli Home. Стол Pebble Flap, диз. Studio Klass, Living Divani. Кофейный столик Mew, Zaha Hadid Design, Sawaya&Moroni. Столик Aleppo, Etro Home Interiors. Коллекция Alchemy, диз. Stormo, De Castelli. Коллекция Pastilles, диз. Studiopepe, Tacchini. Rail, диз. Федерико Пепе. Baxter. Койфейные столики Francis, диз. Констанс Гиссе, Petite Friture. Коллекция Wild, диз. Robby Cantarutti & Partners, Fast. Sigmund, диз. Studio Asai, Arflex. Приставные столики Amos, Opera Contemporary. Столики Bubble, диз. Томас Берстранд и Стефан Борселиус, Blå Station. Кофейный столик V216, Aston Martin. Латунные столики Shirudo, диз. Элиса Хонканен, Mingardo. Коллекция Marni Moon Walk, Marni. Приставные столики Nara, диз. Жан-Мари Массо, Poliform. Стол и пуф Trame, диз. студия Angeletti Ruzza, DA A. Кофейный столик Motif, диз. Analogia Project, Frag. Кофейный столик Palm, колл. Notorious, диз. Пьеро Анджело Ореккьони, Marioni. Стол Islands, диз. Стивен Бёркс, Living Divani. Столик Cannage, диз. Эммануэль Галлина, Fiam Italia. Приставной столик Rialto, MisuraEmme. Стол Mona, диз. Diabla Team & Jonathan Lawes, Diabla. Кофейные столики Hishi, диз. Кьяра Андреатти, Potocco.

Кофейные столики в 2019 году стали еще ниже и длиннее. Высота до 30 см над полом и вытянутая форма в одних моделях контрастирует с высотой других, универсальных столиков-геридонов (столиков «для одной чашки»), которые можно поставить и в спальне, и в гостиной. Предметы разной высоты и диаметра образуют свободные композиции и могут заменить один большой предмет в центре парадной зоны.

ember-models-table — npm

Установить

 ember установить ember-models-table 

Обсуждение

Присоединяйтесь к официальному серверу Ember Discord.

Использование

Major version 3.x — это последняя версия ember-models-table .

  • Демо для ember-bootstrap с Bootstrap v3 — демо bs3. Здесь используется тема ember-bootstrap-v3 . Добавьте файл app / instance-initializers / emt-inject.js в ваш проект, и компоненты таблицы будут использовать эту тему автоматически:
 инициализация функции экспорта (appInstance) {
  appInstance.inject ('component: models-table', 'themeInstance', `theme: ember-bootstrap-v3`);
  appInstance.inject ('component: models-table-server-paginated', 'themeInstance', `theme: ember-bootstrap-v3`);
}

экспорт по умолчанию {
  имя: 'emt-inject',
  инициализировать
}; 
  • Демо для ember-bootstrap с Bootstrap v4 — демонстрация bs4. Здесь используется тема ember-bootstrap-v4 .Добавьте в проект файл app / instance-initializers / emt-inject.js , и компоненты таблицы будут использовать эту тему автоматически:
 инициализация функции экспорта (appInstance) {
  appInstance.inject ('component: models-table', 'themeInstance', `theme: ember-bootstrap-v4`);
  appInstance.inject ('component: models-table-server-paginated', 'themeInstance', `theme: ember-bootstrap-v4`);
}

экспорт по умолчанию {
  имя: 'emt-inject',
  инициализировать
}; 
  • Demo for ember-paper — демонстрационная бумага.Здесь использована тема тлеющая бумага . Добавьте в проект файл app / instance-initializers / emt-inject.js , и компоненты таблицы будут использовать эту тему автоматически:
 инициализация функции экспорта (appInstance) {
  appInstance.inject ('component: models-table', 'themeInstance', `theme: ember-paper`);
  appInstance.inject ('component: models-table-server-paginated', 'themeInstance', `theme: ember-paper`);
}

экспорт по умолчанию {
  имя: 'emt-inject',
  инициализировать
}; 

ВАЖНО Пользовательские стили для темы ember-paper не включены в таблицу ember-models-table по умолчанию.Вы можете скопировать его из приложения-макета или создать свои собственные стили.

  • Demo для plain-html — демонстрация plain html. Здесь используется тема plain-html . Добавьте в проект файл app / instance-initializers / emt-inject.js , и компоненты таблицы будут использовать эту тему автоматически:
 инициализация функции экспорта (appInstance) {
  appInstance.inject ('component: models-table', 'themeInstance', `theme: plain-html`);
  appInstance.inject ('component: models-table-server-paginated', 'themeInstance', `theme: plain-html`);
}

экспорт по умолчанию {
  имя: 'emt-inject',
  инициализировать
}; 

ВАЖНО Пользовательские стили для темы plain-html по умолчанию не включаются в таблицу ember-models-table .Вы можете скопировать его из приложения-макета или создать свои собственные стили.

Пользовательские темы

Чтобы использовать собственную тему на основе DefaultTheme или ее дочерних элементов, необходимо выполнить следующие шаги:

  • Зарегистрируйте свою тему в инициализаторе приложения:
 // приложение / инициализирует / emt-my-super-theme.js
импортировать MySuperTheme из вашего / custom / path;

инициализация функции экспорта (приложение) {
  application.register ('emt-theme: my-super-theme', MySuperTheme, {singleton: false});
}

экспорт по умолчанию {
  name: 'emt-my-custom-theme',
  после: 'emt-themes',
  инициализировать
}; 
  • Вставьте свою тему в компонент в инициализаторе экземпляра приложения:
 // приложение / инициализаторы экземпляра / emt-my-super-theme.js
инициализация функции экспорта (appInstance) {
  appInstance.inject ('component: models-table', 'themeInstance', 'theme: my-super-theme');
  appInstance.inject ('компонент: модели-таблица-сервер-разбивка на страницы', 'themeInstance', 'тема: моя-супер-тема');
}

экспорт по умолчанию {
  name: 'emt-my-super-theme-inject',
  после: 'emt-inject',
  инициализировать
}; 

DefaultTheme внутренне использует owner.lookup . Вот почему темы на его основе должны быть зарегистрированы и внедрены, а не просто переданы в качестве аргументов компоненту models-table .

Старые версии

Учебных моделей | Таблицы AutoML | Google Cloud

Бета

На этот продукт распространяются Условия предоставления предложений до GA. Условий использования Google Cloud.Поддержка продуктов до GA может быть ограничена, а изменения продуктов до GA могут быть несовместимы с другими версиями до GA. Для получения дополнительной информации см. описания этапов запуска.

На этой странице описывается, как использовать таблицы AutoML для обучения пользовательской модели на основе в вашем наборе данных. У вас уже должно быть создал набор данных и импортировал в него данные.

Введение

Вы создаете собственную модель, обучая ее с помощью подготовленных набор данных.AutoML Tables использует элементы из набора данных для обучения модели, протестируйте его и оцените его работу. Вы можете просмотреть результаты, скорректировать обучите набор данных по мере необходимости и обучите новую модель, используя улучшенный набор данных.

В рамках подготовки к обучению модели вы обновляете информацию схемы набор данных. Эти обновления схемы влияют на любую будущую модель. который использует этот набор данных. Модели, которые уже начали обучение, не затронуты.

Обучение модели может занять несколько часов.Вы можете проверить тренировку прогресс в облачной консоли или с помощью Cloud AutoML API.

Поскольку AutoML Tables создает новую модель каждый раз, когда вы начинаете обучение, ваш проект может включать в себя множество моделей. Вы можете получить список моделей в ваш проект и можете удалять модели, которые вам больше не нужны.

Модели необходимо периодически переобучать, чтобы они могли продолжать служить. предсказания. Для прогнозов без важности характеристик модель должна быть переподготовка каждые два года.Для прогнозов с важностью функции модель должен проходить переподготовку каждые шесть месяцев.

Обучение модели

Консоль

  1. При необходимости откройте страницу Наборы данных и щелкните нужный набор данных. использовать.

    Откроется набор данных на вкладке Поезд .

  2. Выберите целевой столбец для вашей модели.

    Это значение, которое модель обучена предсказывать.Его тип данных определяет, является ли полученная модель регрессией (числовой) или классификационная (категориальная) модель. Выучить больше.

    Если ваш целевой столбец имеет тип данных Категориальный, он должен иметь как минимум два и не более 500 различных значений.

  3. Обзор Тип данных , Обнуляемость и статистика данных для каждый столбец в наборе данных.

    Вы можете щелкнуть отдельные столбцы, чтобы получить более подробную информацию об этом столбце.Подробнее об обзоре схемы.

  4. Если вы хотите управлять разделением данных, нажмите Изменить дополнительные параметры и укажите столбец разделения данных или столбец времени. Выучить больше.

  5. Если вы хотите взвесить свои обучающие примеры по значению столбца, нажмите Изменить дополнительные параметры и укажите соответствующий столбец. Выучить больше.

  6. Просмотрите сводную статистику и детали, чтобы убедиться, что качество ваших данных это то, что вы ожидаете, и что вы определили все столбцы, которые необходимо исключены при создании вашей модели.

    Для получения дополнительной информации см. Анализ данных тренировки.

  7. Когда вы будете удовлетворены схемой набора данных, щелкните Модель поезда на верх экрана.

    Когда вы вносите изменения в свою схему, AutoML Tables обновляет сводная статистика, заполнение которой может занять некоторое время. Вы не необходимо дождаться завершения этого процесса, прежде чем начинать обучение модели.

  8. Для Бюджет обучения введите максимальное количество часов обучения для этой модели.

    Бюджет обучения составляет от 1 до 72 часов. Это максимальная сумма времени тренировки с вас будет взиматься плата.

    Предлагаемое время обучения зависит от размера данных обучения. В в таблице ниже показаны предлагаемые диапазоны времени обучения по количеству строк; большое количество столбцов также увеличит время обучения.

    Ряды Рекомендуемое время обучения
    Менее 100 000 1-3 часа
    100 000–1 000 000 1-6 часов
    1 000 000–10 000 000 1–12 часов
    Более 10 000 000 3 — 24 часа

    Создание модели включает в себя другие задачи помимо обучения, поэтому общее время на создание модели уходит больше времени, чем на обучение.Например, если если вы указываете 2 часа обучения, это может занять 3 или более часов, прежде чем модель готова к развертыванию. Вы платите только за фактическое время тренировки.

    Узнать больше о ценах на обучение.

    Если AutoML Tables обнаруживает, что модель больше не улучшается до того, как бюджет на обучение исчерпан, он прекращает обучение. Если хотите использовать все запланированное время обучения, открыть Дополнительные параметры и отключить Ранняя остановка .

  9. В разделе Выбор входных данных исключите любые столбцы, которые вы предназначены для исключения на этапе анализа схемы.

  10. Если вы не хотите использовать цель оптимизации по умолчанию, откройте Дополнительные параметры и выберите желаемую метрику. Таблицы AutoML для оптимизации при обучении модели. Выучить больше.

    В зависимости от типа данных вашего целевого столбца может быть только один вариант для Цель оптимизации .

  11. Щелкните Train model , чтобы начать обучение модели.

    Обучение модели может занять несколько часов в зависимости от размера набор данных и бюджет на обучение.Вы можете закрыть окно браузера не влияя на тренировочный процесс.

    После успешного обучения модели на вкладке Models отображается высокоуровневый показатели модели, такие как точность и отзыв.

    Для получения помощи по оценке качества вашей модели см. Оценка моделей.

ЛИНИЯ REST & CMD

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

Если ваши ресурсы находятся в регионе ЕС, используйте eu для {location} . и используйте конечную точку eu-automl.googleapis.com . В противном случае используйте us-central1 . Выучить больше.

  1. После завершения импорта перечислите спецификации таблицы, чтобы получить ее идентификатор.

    Прежде чем использовать какие-либо данные запроса, сделайте следующие замены:

    • конечная точка : авт.googleapis.com для глобального местоположения и eu-automl.googleapis.com для региона ЕС.
    • идентификатор проекта : идентификатор вашего проекта в Google Cloud.
    • расположение : расположение ресурса: us-central1 для Global или eu для Европейского Союза.
    • dataset-id : идентификатор набора данных. Например, ТБЛ6543 .

    Метод HTTP и URL:

     GET https: //  конечная точка  / v1beta1 / projects /  идентификатор проекта  / location /  location  / datasets /  dataset-id  / tableSpecs / 

    Чтобы отправить запрос, разверните одну из следующих опций:

    curl (Linux, macOS или Cloud Shell)

    Выполните следующую команду:

     curl -X GET \ 
    -H "Авторизация: предъявитель" $ (gcloud auth application-default print-access-token) \
    "https: // конечная точка / v1beta1 / projects / идентификатор проекта / location / расположение / datasets / dataset-id / tableSpecs / "
    PowerShell (Windows)

    Выполните следующую команду:

     $ cred = gcloud auth application-default print-access-token 
    $ headers = @ {"Authorization" = "Bearer $ cred"}

    Invoke-WebRequest `
    -Method GET`
    -Headers $ headers `
    -Uri" https: // конечная точка / v1beta1 / projects / идентификатор проекта / location / location / datasets / dataset-id / tableSpecs / "| Select-Object -Expand Content

    Ответ
    {
      "tableSpecs": [
        {
          "имя": "проекты / 2
  2. / местоположения / us-central1 / datasets / TBL6543 / tableSpecs / 370474 ", "rowCount": "1460", "validRowCount": "1460", "inputConfigs": [ { "gcsSource": { "inputUris": [ "gs: // datasets / жильё_цена.csv " ] } } ], "etag": "AB3BwFppc_h2J3MdRSzDs4nr_fgUUY1sz5g =", "columnCount": "81" } ] }

    Идентификатор таблицы выделен жирным шрифтом в поле name .

  3. Укажите характеристики вашей колонки.

    Прежде чем использовать какие-либо данные запроса, сделайте следующие замены:

    • конечная точка : automl.googleapis.com для глобального местоположения и eu-automl.googleapis.com для региона ЕС.
    • идентификатор проекта : идентификатор вашего проекта в Google Cloud.
    • расположение : расположение ресурса: us-central1 для Global или eu для Европейского Союза.
    • dataset-id : идентификатор набора данных. Например, ТБЛ6543 .
    • table-id : идентификатор таблицы.

    Метод HTTP и URL:

     GET https: //  конечная точка  / v1beta1 / projects /  идентификатор проекта  / location /  location  / datasets /  dataset-id  / tableSpecs /  table-id  / columnSpecs / 

    Чтобы отправить запрос, разверните одну из следующих опций:

    curl (Linux, macOS или Cloud Shell)

    Выполните следующую команду:

     curl -X GET \ 
    -H "Авторизация: предъявитель" $ (gcloud auth application-default print-access-token) \
    "https: // конечная точка / v1beta1 / projects / идентификатор проекта / location / расположение / datasets / dataset-id / tableSpecs / table-id / columnSpecs / "
    PowerShell (Windows)

    Выполните следующую команду:

     $ cred = gcloud auth application-default print-access-token 
    $ headers = @ {"Authorization" = "Bearer $ cred"}

    Invoke-WebRequest `
    -Method GET`
    -Headers $ headers `
    -Uri" https: // конечная точка / v1beta1 / projects / идентификатор проекта / location / location / datasets / dataset-id / tableSpecs / table-id / columnSpecs / "| Select-Object -Expand Content

    Ответ
    {
      "columnSpecs": [
        {
          "имя": "проекты / 2
  4. / местоположения / us-central1 / datasets / TBL6543 / tableSpecs / 370474 / columnSpecs / 45948", "тип данных": { "typeCode": "FLOAT64", "CompatibleDataTypes": [ { "typeCode": "FLOAT64" }, { "typeCode": "КАТЕГОРИЯ" } ] }, "displayName": "Id", "dataStats": { "ownValueCount": "1460", "float64Stats": { «значит»: 730.5, "standardDeviation": 421.6100093688479, "квантили": [ 1, 343, г. 716, г. 1083, г. 1460 ], "histogramBuckets": [ { "min": "-Бесконечность", «макс»: 146,9, "count": "146" }, ... { «мин»: 1314.1000000000001, "max": "Бесконечность", "count": "146" } ] }, "validValueCount": "1460" }, "etag": "AB3BwFoaeD2X9CbCpGM8pWxNJ6S5L1_Rtnk =" }, { «имя»: «проекты / 2 / местоположения / us-central1 / datasets / TBL6543 / tableSpecs / 370474 / columnSpecs / 29635, "тип данных": { "typeCode": "FLOAT64", "CompatibleDataTypes": [ { "typeCode": "FLOAT64" }, { "typeCode": "КАТЕГОРИЯ" } ] }, "displayName": "MSSubClass", "dataStats": { "ownValueCount": "15", "float64Stats": { «значит»: 56.897260273972606, "standardDeviation": 42.300570993810425, "квантили": [ 20, 20, 50, 70, 190 ], "histogramBuckets": [ { "min": "-Бесконечность", «макс»: 37, "count": "605" }, ... { «мин»: 173, "max": "Бесконечность", "count": "40" } ] }, "validValueCount": "1460" }, "etag": "AB3BwFrppb1HM7wJd9_mnGFIoVs7ohmzeTD3NgjJ_aNxKjE =" } ] }
  5. При желании настройте целевой столбец.

    Это значение, которое модель обучена предсказывать. Его тип данных определяет, является ли полученная модель регрессией (числовой) или классификационная (категориальная) модель. Выучить больше.

    Если ваш целевой столбец имеет тип данных Категориальный, он должен иметь как минимум два и не более 500 различных значений.

    Вы также можете указать целевой столбец при обучении модели. если ты планируйте это сделать, сохраните свой идентификатор таблицы и желаемый идентификатор целевого столбца на будущее использовать.

    Прежде чем использовать какие-либо данные запроса, сделайте следующие замены:

    • конечная точка : automl.googleapis.com для глобального местоположения и eu-automl.googleapis.com для региона ЕС.
    • идентификатор проекта : идентификатор вашего проекта в Google Cloud.
    • расположение : расположение ресурса: us-central1 для Global или eu для Европейского Союза.
    • dataset-id : идентификатор вашего набора данных.
    • target-column-id : идентификатор вашего целевого столбца.

    Метод HTTP и URL:

     PATCH https: //  конечная точка  / v1beta1 / projects /  идентификатор проекта  / location /  location  / datasets /  dataset-id  

    Тело запроса JSON:

    {
      "tablesDatasetMetadata": {
        "targetColumnSpecId": " идентификатор целевого столбца "
      }
    }
     

    Чтобы отправить запрос, разверните одну из следующих опций:

    curl (Linux, macOS или Cloud Shell)

    Сохраните тело запроса в файле с именем request.json , и выполните следующую команду:

     curl -X PATCH \ 
    -H "Авторизация: носитель" $ (gcloud auth application-default print-access-token) \
    -H "Content-Type: application / json; charset = utf-8" \
    -d @ request.json \
    "https: // конечная точка / v1beta1 / projects / идентификатор проекта / location / location / datasets / dataset-id "
    PowerShell (Windows)

    Сохраните тело запроса в файле с именем request.json , и выполните следующую команду:

     $ cred = gcloud auth application-default print-access-token 
    $ headers = @ {"Authorization" = "Bearer $ cred"}

    Invoke-WebRequest `
    -Method PATCH`
    -Headers $ headers `
    -ContentType: "application / json; charset = utf-8" `
    -InFile request.json`
    -Uri "https: // конечная точка / v1beta1 / projects / идентификатор проекта / location / location / datasets / идентификатор набора данных "| Select-Object -Expand Content

    Ответ
    {
      "имя": "проекты / 1234 / местоположения / us-central1 / datasets / TBL6543",
      "displayName": "sample_dataset",
      «createTime»: «2019-12-23T23: 03: 34.139313Z ",
      "updateTime": "2019-12-30T20: 51: 41.532594Z",
      "etag": "AB3BwFq6VkX64fx7z2Y4T4z-0jUQLKgFvvtD1RcZ2oikA =",
      "tablesDatasetMetadata": {
        "primaryTableSpecId": "370474",
        "targetColumnSpecId": "6
  6. ", "statsUpdateTime": "2019-12-26T20: 42: 29.185Z", "tablesDatasetType": "BASIC" } }
  7. При необходимости обновите поле mlUseColumnSpecId , указав свой разделение данных и поле weightColumnSpecId для использования столбец веса.

    Прежде чем использовать какие-либо данные запроса, сделайте следующие замены:

    • конечная точка : авт.googleapis.com для глобального местоположения и eu-automl.googleapis.com для региона ЕС.
    • идентификатор проекта : идентификатор вашего проекта в Google Cloud.
    • расположение : расположение ресурса: us-central1 для Global или eu для Европейского Союза.
    • dataset-id : идентификатор вашего набора данных.
    • split-column-id : идентификатор вашего целевого столбца.
    • weight-column-id : идентификатор вашего целевого столбца.

    Метод HTTP и URL:

     PATCH https: //  конечная точка  / v1beta1 / projects /  идентификатор проекта  / location /  location  / datasets /  dataset-id  

    Тело запроса JSON:

    {
      "tablesDatasetMetadata": {
        "mlUseColumnSpecId": " идентификатор разделенного столбца ",
        "weightColumnSpecId": " идентификатор-столбца веса "
      }
    }
     

    Чтобы отправить запрос, разверните одну из следующих опций:

    curl (Linux, macOS или Cloud Shell)

    Сохраните тело запроса в файле с именем request.json , и выполните следующую команду:

     curl -X PATCH \ 
    -H "Авторизация: носитель" $ (gcloud auth application-default print-access-token) \
    -H "Content-Type: application / json; charset = utf-8" \
    -d @ request.json \
    "https: // конечная точка / v1beta1 / projects / идентификатор проекта / location / location / datasets / dataset-id "
    PowerShell (Windows)

    Сохраните тело запроса в файле с именем request.json , и выполните следующую команду:

     $ cred = gcloud auth application-default print-access-token 
    $ headers = @ {"Authorization" = "Bearer $ cred"}

    Invoke-WebRequest `
    -Method PATCH`
    -Headers $ headers `
    -ContentType: "application / json; charset = utf-8" `
    -InFile request.json`
    -Uri "https: // конечная точка / v1beta1 / projects / идентификатор проекта / location / location / datasets / идентификатор набора данных "| Select-Object -Expand Content

    Ответ
    {
      "имя": "проекты / 1234 / местоположения / us-central1 / datasets / TBL6543",
      "displayName": "sample_dataset",
      «createTime»: «2019-12-23T23: 03: 34.139313Z ",
      "updateTime": "2019-12-30T20: 53: 41.532594Z",
      "etag": "AB3BwFq6VkX643xLwY4T4z-0jUQLKgFvvtD1RcZ2oikA =",
      "tablesDatasetMetadata": {
        "primaryTableSpecId": "370474",
        "splitColumnSpecId": "602945",
        "weightColumnSpecId": "459913,
        "statsUpdateTime": "2019-12-26T20: 42: 29.185Z",
        "tablesDatasetType": "BASIC"
      }
    }
     
  8. Проверьте статистику столбца, чтобы убедиться, что значения dataType верны, а столбцы имеют правильное значение для , допускающее значение NULL.

    Если поле помечено как не допускающее значения NULL, это означает, что оно не имело нулевых значений для набор обучающих данных. Убедитесь, что это верно для ваших данных прогноза, так как Что ж; если столбец отмечен как не допускающий значения NULL, и для него не указано значение во время предсказания для этой строки возвращается ошибка предсказания.

    Подробнее об обзоре схемы.

  9. Проверьте качество данных.

    Узнайте больше об анализе данных тренировки.

  10. Обучите модель.

    Прежде чем использовать какие-либо данные запроса, сделайте следующие замены:

    • конечная точка : automl.googleapis.com для глобального местоположения и eu-automl.googleapis.com для региона ЕС.
    • идентификатор проекта : идентификатор вашего проекта в Google Cloud.
    • расположение : расположение ресурса: us-central1 для Global или eu для Европейского Союза.
    • dataset-id : идентификатор набора данных.
    • table-id : идентификатор таблицы, используемый для установки целевого столбца.
    • идентификатор целевого столбца : идентификатор целевого столбца.
    • отображаемое-имя-модели : отображаемое имя для новой модели.
    • оптимизация-цель с метрикой для оптимизации (необязательно).

      См. О целях оптимизации модели.

    • поезд-бюджет-милли-узел-час с количеством милли-ноды-часы на обучение.Например, 1000 = 1 час.

      Предлагаемое время обучения зависит от размера данных обучения. В в таблице ниже показаны предлагаемые диапазоны времени обучения по количеству строк; большое количество столбцов также увеличит время обучения.

      Ряды Рекомендуемое время обучения
      Менее 100 000 1-3 часа
      100 000–1 000 000 1-6 часов
      1 000 000–10 000 000 1–12 часов
      Более 10 000 000 3 — 24 часа

      Создание модели включает в себя другие задачи помимо обучения, поэтому общее время на создание модели уходит больше времени, чем на обучение.Например, если если вы указываете 2 часа обучения, это может занять 3 или более часов, прежде чем модель готова к развертыванию. Вы платите только за фактическое время тренировки.

      Узнать больше о ценах на обучение.

      Если AutoML Tables обнаруживает, что модель больше не улучшается до того, как бюджет на обучение исчерпан, он прекращает обучение. Если хотите использовать все запланированное время обучения, установить disableEarlyStopping для объекта tablesModelMetadata значение true .

    Метод HTTP и URL:

     POST https: //  конечная точка  / v1beta1 / projects /  идентификатор проекта  / location /  location  / models / 

    Тело запроса JSON:

    {
      "datasetId": " идентификатор набора данных ",
      "displayName": " отображаемое-имя модели ",
      "tablesModelMetadata": {
        "trainBudgetMilliNodeHours": " поезд-бюджет-милли-узел-часы ",
        "optimisationObjective": " optimisation-objective ",
        "targetColumnSpec": {
          "имя": "проекты /  идентификатор-проекта  / местоположения /  местоположение  / датасеты /  идентификатор-набора данных  / tableSpecs /  идентификатор-таблицы  / columnSpecs /  идентификатор-столбца цели "
        }
      },
    }
     

    Чтобы отправить запрос, разверните одну из следующих опций:

    curl (Linux, macOS или Cloud Shell)

    Сохраните тело запроса в файле с именем request.json , и выполните следующую команду:

     curl -X POST \ 
    -H "Авторизация: носитель" $ (gcloud auth application-default print-access-token) \
    -H "Content-Type: application / json; charset = utf-8" \
    -d @ request.json \
    "https: // конечная точка / v1beta1 / projects / идентификатор проекта / location / location / models /"
    PowerShell (Windows)

    Сохраните тело запроса в файле с именем request.json , и выполните следующую команду:

     $ cred = gcloud auth application-default print-access-token 
    $ headers = @ {"Authorization" = "Bearer $ cred"}

    Invoke-WebRequest `
    -Method POST`
    -Headers $ headers `
    -ContentType: "application / json; charset = utf-8" `
    -InFile request.json`
    -Uri "https: // конечная точка / v1beta1 / projects / идентификатор проекта / location / location / models /" | Select-Object -Expand Content

    Вы должны получить ответ JSON, подобный следующему:

    {
    
      "имя": "проекты / 2
  11. / местоположения / us-central1 / operations / TBL64984", "метаданные": { "@type": "тип.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata ", "createTime": "2019-12-30T22: 12: 03.014058Z", "updateTime": "2019-12-30T22: 12: 03.014058Z", "cancellable": правда, "createModelDetails": { "modelDisplayName": "new_model1" }, "worksOn": [ "проекты / 2 / местоположения / us-central1 / datasets / TBL3718" ], "состояние": "РАБОТАЕТ" } }

    Обучение модели — длительная операция. Вы можете запросить статус операции или дождаться, пока операция завершится. возвращение.Выучить больше.

Ява

Если ваши ресурсы расположены в регионе ЕС, вы должны явно указать конечную точку. Выучить больше.

Node.js

Если ваши ресурсы расположены в регионе ЕС, вы должны явно указать конечную точку. Выучить больше.

Питон

Клиентская библиотека для таблиц AutoML включает дополнительные методы Python, которые упрощают использование API таблиц AutoML.Эти методы обращаются к наборам данных и моделям по имени, а не по идентификатору. Ваш имена наборов данных и моделей должны быть уникальными. Для получения дополнительной информации см. Ссылка клиента.

Если ваши ресурсы расположены в регионе ЕС, вы должны явно указать конечную точку. Выучить больше.

Обзор схемы

AutoML Tables определяет тип данных и допускает ли столбец значение NULL для каждого столбца на основе исходного типа данных (если он был импортирован из BigQuery) и значения в столбце.Вы должны проверить каждый столбец и убедитесь, что он выглядит правильно.

Используйте следующий список для просмотра схемы:

  • Поля, содержащие текст произвольной формы, должны быть текстовыми.

    Текстовые поля разделены на токены UnicodeScriptTokenizer с отдельными токенами, используемыми для модельное обучение. UnicodeScriptTokenizer размечает текст по пробелу, а также отделяют знаки препинания от текста и разные языки от друг с другом.

  • Если значение столбца является одним из конечного набора значений, оно, вероятно, должно быть категориальным, независимо от типа данных, используемых в поле.

    Например, у вас могут быть коды цветов: 1 = красный, 2 = желтый и т. Д. следует убедиться, что такое поле обозначено как Категориальное.

    Исключение из этого руководства — если столбец содержит строки из нескольких слов. В этом случае вы должны установить его как текстовый столбец, даже если он имеет низкий мощность. AutoML Tables токенизирует текстовые столбцы и может быть может получать прогнозирующий сигнал от отдельных токенов или их порядка.

  • Если поле помечено как не допускающее значения NULL, это означает, что оно не имело нулевых значений для набор обучающих данных.Убедитесь, что это верно для ваших данных прогноза, так как Что ж; если столбец отмечен как не допускающий значения NULL, и для него не указано значение во время предсказания для этой строки возвращается ошибка предсказания.

Анализ данных о тренировках

  • Если в столбце высокий процент пропущенных значений, убедитесь, что это ожидается, и не из-за проблемы со сбором данных.

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

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

  • Если Различных значений для категориального столбца приближается к числу строк (например, более 90%), этот столбец не даст много обучающий сигнал. Его следует исключить из тренировок. Столбцы идентификаторов должны всегда быть исключенным.

  • Если значение корреляции столбца с целевым значением высокое, убедитесь, что это ожидаемый, а не признак целевой утечки.

    Если столбец будет доступен при запросе прогнозов, то он это, вероятно, функция с сильной объяснительной силой и может быть включена. Однако иногда признаки с высокой корреляцией на самом деле происходят из цель или собранные постфактум. Эти функции должны быть исключены из обучение, потому что они недоступны во время прогнозирования, поэтому модель непригоден для использования в производстве.

    Корреляция рассчитывается для столбцов категориальных, числовых и временных меток с использованием Крамера В.За числовые столбцы, он рассчитывается с использованием счетчиков сегментов, созданных из квантилей.

О целях оптимизации модели

Цель оптимизации влияет на то, как обучается ваша модель, и, следовательно, как это работает на производстве. В таблице ниже приведены некоторые сведения о для каких задач лучше всего подходит каждая цель:

Цель оптимизации Тип проблемы Значение API Используйте эту цель, если хотите…
AUC ROC Классификация MAXIMIZE_AU_ROC Различайте классы. Значение по умолчанию для двоичной классификации.
Потеря бревен Классификация MINIMIZE_LOG_LOSS Сохраняйте вероятности прогнозов как можно точнее. Поддерживается только цель для мультиклассовой классификации.
AUC PR Классификация MAXIMIZE_AU_PRC Оптимизируйте результаты для прогнозов для менее распространенного класса.
Точность при отзыве Классификация MAXIMIZE_PRECISION_AT_RECALL Оптимизируйте точность при определенном значении отзыва.
Отзыв с точностью Классификация MAXIMIZE_RECALL_AT_PRECISION Оптимизируйте отзыв при определенном значении точности.
RMSE Регрессия MINIMIZE_RMSE Точно фиксируйте более экстремальные значения.
MAE Регрессия MINIMIZE_MAE Рассматривайте экстремальные значения как выбросы с меньшим влиянием на модель.
RMSLE Регрессия MINIMIZE_RMSLE Наказывать ошибку на относительный размер, а не на абсолютное значение. Особенно полезно, когда и прогнозируемые, и фактические значения могут быть довольно большими.

Что дальше

моделей и полей — pewee 3.14.8 документация

Следующий код показывает типичный способ определения вашей базы данных. подключение и классы модели.

 дата и время импорта
из импорта peewee *

db = SqliteDatabase ('my_app.db')

класс BaseModel (Модель):
    класс Мета:
        база данных = db

класс User (BaseModel):
    имя пользователя = CharField (уникальное = True)

класс Tweet (BaseModel):
    user = ForeignKeyField (Пользователь, backref = 'твиты')
    message = TextField ()
    created_date = DateTimeField (по умолчанию = datetime.datetime.в настоящее время)
    is_published = BooleanField (по умолчанию = True)
 

Поля

Поле Класс используется для описания отображения Атрибуты модели для столбцов базы данных. Каждый тип поля имеет соответствующий класс хранения SQL (например, varchar, int) и преобразование между Типы данных python и базовое хранилище обрабатываются прозрачно.

При создании класса Model поля определяются как класс атрибуты. Это должно быть знакомо пользователям фреймворка django.Вот пример:

 класс Пользователь (модель):
    имя пользователя = CharField ()
    join_date = DateTimeField ()
    about_me = TextField ()
 

В приведенном выше примере, поскольку ни одно из полей не инициализировано с primary_key = True , автоматически увеличивается первичный ключ. создан и назван «id». Peewee использует AutoField для обозначения автоматически увеличивающийся целочисленный первичный ключ, что подразумевает primary_key = True .

Существует один специальный тип поля, ForeignKeyField , который позволяет вы можете интуитивно представить отношения внешнего ключа между моделями:

Сообщение класса
 (Модель):
    user = ForeignKeyField (Пользователь, backref = 'messages')
    body = TextField ()
    send_date = DateTimeField (по умолчанию = datetime.datetime.now)
 

Это позволяет писать такой код:

 >>> печать (some_message.user.username)
Некоторый пользователь

>>> для сообщения в some_user.messages:
... печать (message.body)
какое-то сообщение
другое сообщение
еще одно сообщение
 

Примечание

Обратитесь к документу «Взаимосвязи и объединения» для более подробного обсуждения внешние ключи, соединения и отношения между моделями.

Полную документацию по полям см. В примечаниях к API полей

Таблица типов полей

Тип поля Sqlite Postgresql MySQL
AutoField целое серийный целое
BigAutoField целое bigserial bigint
Целочисленное поле целое целое целое
BigIntegerField целое bigint bigint
SmallIntegerField целое smallint smallint
IdentityField не поддерживается внутренняя идентификация не поддерживается
FloatField реал реал реал
DoubleField реал двойная точность двойная точность
Десятичное поле десятичное числовой числовой
CharField varchar varchar varchar
FixedCharField символ символ символ
Текстовое поле текст текст текст
BlobField капля байт капля
BitField целое bigint bigint
BigBitField капля байт капля
UUID Поле текст uuid варчар (40)
BinaryUUIDField капля байт varbinary (16)
DateTimeField datetime метка времени datetime
DateField дата дата дата
TimeField время время время
Поле отметки времени целое целое целое
IPField целое bigint bigint
BooleanField целое логический булев
BareField нетипизированный не поддерживается не поддерживается
ForeignKeyField целое целое целое

Примечание

Не видите искомого поля в приведенной выше таблице? Легко создавать настраиваемые типы полей и использовать их в своих моделях.

Аргументы инициализации поля

Параметры, принимаемые всеми типами полей и их значения по умолчанию:

  • null = False — разрешить нулевые значения
  • index = False — создать индекс по этому столбцу
  • unique = False — создать уникальный индекс для этого столбца. См. Также добавление составных индексов.
  • column_name = None — явно указать имя столбца в базе данных.
  • по умолчанию = Нет — любое значение или вызываемое значение для использования по умолчанию для неинициализированных моделей
  • primary_key = False — первичный ключ для таблицы
  • constraints = None — одно или несколько ограничений, e.г. [Проверить ('цена> 0')]
  • sequence = None — имя последовательности (если бэкэнд его поддерживает)
  • сопоставление = Нет — сопоставление для использования для упорядочивания поля / индекса
  • unindexed = False — указать, что поле в виртуальной таблице должно быть неиндексировано ( SQLite-only )
  • choices = None — необязательная итерация, содержащая 2 кортежа из значений , отображение
  • help_text = None — строка, представляющая любой полезный текст для этого поля
  • verbose_name = None — строка, представляющая «удобное» имя этого поля
  • index_type = None — укажите настраиваемый тип индекса, например.г. для Postgres вы можете указать индекс 'BRIN' или 'GIN' .

Некоторые поля принимают специальные параметры…

Примечание

Оба варианта по умолчанию и могут быть реализованы на уровне базы данных как ПО УМОЛЧАНИЮ и ПРОВЕРИТЬ ОГРАНИЧЕНИЕ соответственно, но любое приложение изменение потребует изменения схемы. Из-за этого по умолчанию реализован исключительно на Python, и варианты не проверены, но существуют только для целей метаданных.

Чтобы добавить ограничения базы данных (на стороне сервера), используйте ограничения параметр.

Значения полей по умолчанию

Peewee может предоставлять значения по умолчанию для полей при создании объектов. За Например, если значение по умолчанию IntegerField равно нулю, а не NULL , вы может объявить поле со значением по умолчанию:

Сообщение класса
 (Модель):
    context = TextField ()
    read_count = IntegerField (по умолчанию = 0)
 

В некоторых случаях значение по умолчанию может быть динамическим.А общий сценарий использует текущую дату и время. Peewee позволяет укажите функцию в этих случаях, возвращаемое значение которой будет использоваться, когда объект создан. Обратите внимание, что мы предоставляем только функцию, на самом деле мы не вызываем это:

Сообщение класса
 (Модель):
    context = TextField ()
    timestamp = DateTimeField (по умолчанию = datetime.datetime.now)
 

Примечание

Если вы используете поле, которое принимает изменяемый тип ( список , dict и т. Д.), и хотели бы указать значение по умолчанию, рекомендуется обернуть значение по умолчанию значение в простой функции, чтобы несколько экземпляров модели не использовали ссылка на тот же базовый объект:

 def house_defaults ():
    return {'кровати': 0, 'ванные': 0}

class House (Модель):
    число = текстовое поле ()
    street = TextField ()
    атрибуты = JSONField (по умолчанию = house_defaults)
 

База данных также может предоставить значение по умолчанию для поля.В то время как peewee делает не предоставлять явно API для установки значения по умолчанию на стороне сервера, вы можете используйте параметр constraints , чтобы указать сервер по умолчанию:

Сообщение класса
 (Модель):
    context = TextField ()
    отметка времени = DateTimeField (ограничения = [SQL ('DEFAULT CURRENT_TIMESTAMP')])
 

Примечание

Помните: при использовании параметра по умолчанию значения устанавливаются Peewee вместо того, чтобы быть частью фактического определения таблицы и столбца.

ForeignKeyField

ForeignKeyField — это специальный тип поля, который позволяет одной модели ссылка на другой. Обычно внешний ключ будет содержать первичный ключ модель, к которой он относится (но вы можете указать конкретный столбец, указав поле ).

Внешние ключи позволяют нормализовать данные. В наших примерах моделей есть внешний ключ от Tweet до User . Этот означает, что все пользователи хранятся в своей таблице, как и твиты, и внешний ключ от твита к пользователю позволяет каждому твиту точку конкретному пользовательский объект.

Примечание

Обратитесь к документу «Взаимосвязи и объединения» для более подробного обсуждения внешние ключи, соединения и отношения между моделями.

В peewee, доступ к значению ForeignKeyField вернет весь связанный объект, например:

 твитов = (Твитнуть
          .select (твит, пользователь)
          .join (Пользователь)
          .order_by (Tweet.created_date.desc ()))
для твита в твитах:
    печать (tweet.user.username, tweet.message)
 

Примечание

В приведенном выше примере данные Пользователь были выбраны как часть запроса.Дополнительные примеры этой техники см. В статье Избегание N + 1. документ.

Если бы мы не выбрали User , тогда дополнительный запрос был бы будет выдан для получения связанных данных пользователя :

 твитов = Tweet.select (). Order_by (Tweet.created_date.desc ())
для твита в твитах:
    # ВНИМАНИЕ: для КАЖДОГО твита будет выдан дополнительный запрос
    # для получения связанных данных пользователя.
    печать (tweet.user.username, tweet.message)
 

Иногда вам нужно только связанное значение первичного ключа из внешнего ключа столбец.В этом случае Peewee следует соглашению, установленному Django, позволяя вам получить доступ к необработанному значению внешнего ключа, добавив "_id" к имя поля внешнего ключа:

 твитов = Tweet.select ()
для твита в твитах:
    # Вместо "tweet.user" мы просто получим сохраненное необработанное значение идентификатора
    # в столбце.
    печать (tweet.user_id, tweet.message)
 

Для предотвращения случайного разрешения внешнего ключа и запуска дополнительного запрос, ForeignKeyField поддерживает параметр инициализации lazy_load , который, когда отключен, ведет себя как атрибут "_id" .За пример:

 class Tweet (Модель):
    # ... те же поля, за исключением того, что мы объявляем, что пользователь FK имеет
    # отложенная загрузка отключена:
    user = ForeignKeyField (Пользователь, backref = 'tweets', lazy_load = False)

для твита в Tweet.select ():
    печать (tweet.user, tweet.message)

# Если отложенная загрузка отключена, доступ к tweet.user не будет выполнять дополнительных
# запрос, и вместо него возвращается значение идентификатора пользователя.
# например:
# 1 твит от пользователя user1
# 1 другой от пользователя user1
# 2 твит пользователя user2

# Однако, если мы с нетерпением загружаем связанный объект пользователя, то пользователь
# внешний ключ будет вести себя как обычно:
для твита в Твиттере.выберите (Твитнуть, Пользователь). присоединиться (Пользователь):
    печать (tweet.user.username, tweet.message)

# user1 твит от пользователя user1
# user1 другой от пользователя user1
# user2 твит от пользователя user1
 

ForeignKeyField Обратные ссылки

ForeignKeyField позволяет привязать свойство обратной ссылки к целевой модели. Неявно это свойство будет называться classname_set , где имя класса — это имя класса в нижнем регистре, но его можно переопределить используя параметр backref :

Сообщение класса
 (Модель):
    from_user = ForeignKeyField (Пользователь, backref = 'outbox')
    to_user = ForeignKeyField (Пользователь, backref = 'inbox')
    текст = TextField ()

для сообщения в some_user.исходящие:
    # Мы перебираем все сообщения, у которых from_user является some_user.
    печать (сообщение)

для сообщения в some_user.inbox:
    # Мы перебираем все сообщения, у которых to_user - это some_user
    печать (сообщение)
 

DateTimeField, DateField и TimeField

Три поля, предназначенные для работы с датой и временем, имеют особые свойства. которые позволяют получить доступ к таким вещам, как год, месяц, час и т. д.

DateField имеет свойства для:

TimeField имеет свойства для:

DateTimeField имеет все вышеперечисленное.

Эти свойства можно использовать так же, как и любое другое выражение. Допустим, у нас есть календарь событий и хотите выделить все дни текущего месяца, которые прикрепить событие:

 # Получить текущее время.
сейчас = datetime.datetime.now ()

# Получить дни, в которых есть события текущего месяца.
Event.select (Event.event_date.day.alias ('день')). Где (
    (Event.event_date.year == now.year) &
    (Event.event_date.month == now.month))
 

Примечание

SQLite не имеет собственного типа даты, поэтому даты хранятся в формате текстовые столбцы.Чтобы сравнения работали правильно, даты должны быть быть отформатированы таким образом, чтобы они были отсортированы лексикографически. Вот почему они по умолчанию сохраняется как ГГГГ-ММ-ДД ЧЧ: ММ: СС .

BitField и BigBitField

BitField и BigBitField являются новыми с 3.0.0. В бывший предоставляет подкласс IntegerField , который подходит для сохранение переключателей функций в виде целочисленной битовой маски. Последний подходит для хранение растрового изображения для большого набора данных, e.г. выражая членство или данные растрового типа.

В качестве примера использования BitField , допустим, у нас есть модель Post . и мы хотим сохранить определенные флаги True / False о том, как post. Мы могли бы хранить все эти переключатели функций в собственных объектах BooleanField , или вместо этого можно использовать BitField :

Сообщение класса
 (Модель):
    content = TextField ()
    flags = BitField ()

    is_favorite = flags.flag (1)
    is_sticky = flags.flag (2)
    is_minimized = флаги.флаг (4)
    is_deleted = flags.flag (8)
 

Использовать эти флаги довольно просто:

 >>> p = Опубликовать ()
>>> p.is_sticky = True
>>> p.is_minimized = Истина
>>> print (p.flags) # Выводит 4 | 2 -> «6»
6
>>> p.is_favorite
Ложь
>>> p.is_sticky
Истинный
 

Мы также можем использовать флаги класса Post для построения выражений в запросах:

 # Создает предложение WHERE, которое выглядит так:
# ГДЕ (post.flags & 1! = 0)
избранное = Опубликовать.select (). где (Post.is_favorite)

# Запрос на прикрепленные + избранные сообщения:
sticky_faves = Post.select (). где (Post.is_sticky & Post.is_favorite)
 

Поскольку BitField хранится в виде целого числа, существует максимум 64 флага, которые вы можете представить (64 бита — это обычный размер целочисленного столбца). За сохраняя произвольно большие растровые изображения, вы можете вместо этого использовать BigBitField , который использует автоматически управляемый буфер байтов, хранящийся в BlobField .

При массовом обновлении одного или нескольких битов в BitField можно использовать побитовые операторы для установки или сброса одного или нескольких битов:

 # Установить 4-й бит для всех объектов Post.Post.update (флаги = Post.flags | 8) .execute ()

# Очистить 1-й и 3-й биты для всех объектов Post.
Post.update (flags = Post.flags & ~ (1 | 4)). Execute ()
 

Для простых операций предусмотрены удобные флаги set () и clear () методы установки или сброса отдельного бита:

 # Установить бит is_deleted для всех сообщений.
Post.update (flags = Post.is_deleted.set ()). Execute ()

# Сбросьте бит "is_deleted" во всех сообщениях.
Post.update (флаги = Post.is_deleted.clear ()).выполнять()
 

Пример использования:

 класс Bitmap (Модель):
    data = BigBitField ()

bitmap = Bitmap ()

# Устанавливает i-й бит, например 1-й бит, 11-й, 63-й и т. д.
bits_to_set = (1, 11, 63, 31, 55, 48, 100, 99)
для bit_idx в bits_to_set:
    bitmap.data.set_bit (bit_idx)

# Мы можем проверить, установлен ли бит, используя "is_set":
утверждать bitmap.data.is_set (11)
утверждать не bitmap.data.is_set (12)

# Мы можем немного прояснить:
bitmap.data.clear_bit (11)
утверждать не bitmap.data.is_set (11)

# Мы также можем немного "переключиться".Напомним, что 63 бит был установлен ранее.
assert bitmap.data.toggle_bit (63) имеет значение False
assert bitmap.data.toggle_bit (63) истинно
утверждать bitmap.data.is_set (63)
 

BareField

Класс BareField предназначен для использования только с SQLite. С SQLite использует динамическую типизацию, и типы данных не применяются, это может быть отлично прекрасно объявлять поля без любого типа данных . В этих случаях вы можете использовать Голое Поле . Виртуальные таблицы SQLite также часто используют мета-столбцы или нетипизированные столбцы, поэтому и для этих случаев вы можете использовать нетипизированное поле (хотя для полнотекстового поиска следует использовать SearchField вместо этого!).

BareField принимает специальный параметр адаптировать . Этот параметр функция, которая принимает значение из базы данных и преобразует его в соответствующий тип Python. Например, если у вас есть виртуальный стол с нетипизированный столбец, но вы знаете, что он вернет объекты int , вы можете укажите adap = int .

Пример:

 db = SqliteDatabase (': память:')

класс Junk (Модель):
    что-нибудь = BareField ()

    класс Мета:
        база данных = db

# Хранить несколько типов данных в спаме.столбец ничего:
Junk.create (что-нибудь = 'строка')
Junk.create (что-нибудь = 12345)
Junk.create (что-нибудь = 3,14159)
 

Создание настраиваемого поля

В peewee легко добавить поддержку настраиваемых типов полей. В этом примере мы создаст поле UUID для postgresql (которое имеет собственный тип столбца UUID).

Чтобы добавить настраиваемый тип поля, вам необходимо сначала определить, какой тип столбца данные поля будут храниться в. Если вы просто хотите добавить поведение Python поверх, скажем, десятичное поле (например, чтобы сделать поле валюты), вы бы просто подкласс DecimalField .С другой стороны, если база данных предлагает пользовательский тип столбца, который вам нужно будет сообщить ребенку. Это контролируется Field.field_type атрибут.

Примечание

Peewee поставляется с UUIDField , следующий код предназначен только в качестве примера.

Начнем с определения поля UUID:

 класс UUIDField (Поле):
    field_type = 'uuid'
 

Мы будем хранить UUID в собственном столбце UUID. Поскольку psycopg2 обрабатывает данные в качестве строки по умолчанию мы добавим два метода в поле для обработки:

  • Данные, поступающие из базы данных, которые будут использоваться в нашем приложении
  • Данные из нашего приложения Python, попадающие в базу данных
 импорт uuid

класс UUIDField (Поле):
    field_type = 'uuid'

    def db_value (self, значение):
        возвращаемое значение.hex # преобразовать UUID в шестнадцатеричную строку.

    def python_value (self, value):
        return uuid.UUID (value) # преобразовать шестнадцатеричную строку в UUID
 

Этот шаг не является обязательным. По умолчанию будет использоваться значение field_type для типа данных столбцов в схеме базы данных. Если вам нужно поддержать несколько баз данных, которые используют разные типы данных для ваших полевых данных, нам нужно чтобы база данных знала, как сопоставить эту метку uuid с фактическим uuid тип столбца в базе данных.Задайте переопределения в конструкторе Database :

 # Postgres, мы используем тип данных UUID.
db = PostgresqlDatabase ('my_db', field_types = {'uuid': 'uuid'})

# Sqlite не имеет типа UUID, поэтому мы используем текстовый тип.
db = SqliteDatabase ('my_db', field_types = {'uuid': 'текст'})
 

Вот и все! Некоторые поля могут поддерживать экзотические операции, например postgresql Поле HStore действует как хранилище ключей / значений и имеет настраиваемые операторы для вещей. например, содержит и обновление .Вы также можете указать пользовательские операции. Например, посмотрите исходный код для HStoreField , в playhouse.postgres_ext .

Конфликты именования полей

Классы модели реализуют ряд методов класса и экземпляра, например Model.save () или Model.create () . Если вы объявите поле, имя которого совпадает с модельным методом, может вызвать проблемы. Рассмотрим:

 класс LogEntry (Модель):
    event = TextField ()
    create = TimestampField () # Ой-ой.update = TimestampField () # Ой-ой.
 

Чтобы избежать этой проблемы при использовании желаемого имени столбца в базе данных схема, явно укажите имя_столбца , предоставив альтернативу имя для атрибута поля:

 класс LogEntry (Модель):
    event = TextField ()
    create_ = TimestampField (имя_столбца = 'создать')
    update_ = Поле отметки времени (имя_столбца = 'обновление')
 

Индексы и ограничения

Peewee может создавать индексы для одного или нескольких столбцов, опционально включая УНИКАЛЬНОЕ ограничение.Peewee также поддерживает определенные пользователем ограничения для обоих модели и поля.

Одностолбцовые индексы и ограничения

Индексы одного столбца определяются с использованием параметров инициализации поля. В В следующем примере добавляется уникальный индекс в поле имени пользователя и нормальный индекс в электронном письме поле:

 класс Пользователь (модель):
    имя пользователя = CharField (уникальное = True)
    электронная почта = CharField (индекс = True)
 

Чтобы добавить определяемое пользователем ограничение для столбца, вы можете передать его, используя ограничения параметр.Вы можете указать значение по умолчанию как часть схему или добавьте ограничение CHECK , например:

 класс Продукт (модель):
    name = CharField (уникальный = True)
    цена = DecimalField (ограничения = [Проверить ('цена <10000')])
    created = DateTimeField (
        ограничения = [SQL ("ПО УМОЛЧАНИЮ (datetime ('сейчас'))")])
 

Многостолбцовые индексы

Многостолбцовые индексы могут быть определены как атрибуты Meta с использованием вложенного кортежа. Каждый индекс базы данных представляет собой кортеж из двух частей, первая часть которого является кортежем имена полей, вторая часть - логическое значение, указывающее, должен быть уникальным.

Транзакция класса
 (Модель):
    from_acct = CharField ()
    to_acct = CharField ()
    количество = DecimalField ()
    date = DateTimeField ()

    класс Мета:
        индексы = (
            # создать уникальный от / по / дату
            (('from_acct', 'to_acct', 'date'), True),

            # создать неуникальный на от / до
            (('from_acct', 'to_acct'); Ложь),
        )
 

Примечание

Не забудьте добавить в конце запятую , если ваш кортеж индексов содержит только один элемент:

 класс Мета:
    индексы = (
        (('first_name', 'last_name'), True), # Обратите внимание на конечную запятую!
    )
 

Расширенное создание индекса

Peewee поддерживает более структурированный API для объявления индексов в модели с использованием Модель .add_index () или напрямую с помощью ModelIndex вспомогательный класс.

Примеры:

 класс Артикул (Модель):
    name = TextField ()
    timestamp = Поле отметки времени ()
    status = IntegerField ()
    flags = IntegerField ()

# Добавить индекс в столбцы "имя" и "отметка времени".
Article.add_index (название статьи, отметка времени статьи)

# Добавить частичный индекс для имени и отметки времени, где status = 1.
Article.add_index (название статьи, отметка времени статьи,
                  где = (ст.статус == 1))

# Создать уникальный индекс по описанию временной метки, статусу и 4.
idx = Article.index (
    Article.timestamp.desc (),
    Статья.flags.bin_and (4),
    unique = True)
Статья.add_index (idx)
 

Предупреждение

SQLite не поддерживает параметризованные запросы CREATE INDEX . Это означает что при использовании SQLite для создания индекса, который включает выражение или скалярное значение, вам нужно будет объявить индекс с помощью SQL помощник:

 # SQLite не поддерживает параметризованные запросы CREATE INDEX, поэтому
# объявляем вручную.Article.add_index (SQL ('СОЗДАТЬ ИНДЕКС ...'))
 

Подробнее см. add_index () .

Для получения дополнительной информации см .:

Ограничения таблицы

Peewee позволяет добавлять произвольные ограничения к вашему Model , что будет частью определения таблицы при создании схемы.

Например, предположим, что у вас есть таблица человек с составным первичным ключом две колонки, имя и фамилия человека. Вы хотите иметь другой стол относятся к таблице человек , и для этого вам нужно будет определить внешний ключевое ограничение:

 класс Человек (Модель):
    first = CharField ()
    last = CharField ()

    класс Мета:
        primary_key = CompositeKey ('первый', 'последний')

класс Pet (Модель):
    owner_first = CharField ()
    owner_last = CharField ()
    pet_name = CharField ()

    класс Мета:
        constraints = [SQL ('ИНОСТРАННЫЙ КЛЮЧ (owner_first, owner_last)'
                           'ССЫЛКИ человек (первый, последний)')]
 

Вы также можете реализовать ограничения CHECK на уровне таблицы:

 класс Продукт (модель):
    name = CharField (уникальный = True)
    цена = DecimalField ()

    класс Мета:
        constraints = [Проверить ('цена <10000')]
 

Первичные ключи, составные ключи и другие уловки

AutoField используется для идентификации автоматически увеличивающегося целого числа. первичный ключ.Если вы не укажете первичный ключ, Peewee автоматически создайте автоматически увеличивающийся первичный ключ с именем «id».

Чтобы указать автоматически увеличивающийся идентификатор с использованием другого имени поля, вы можете написать:

Событие класса
 (Модель):
    event_id = AutoField () # Event.event_id будет автоматически увеличивать PK.
    name = CharField ()
    timestamp = DateTimeField (по умолчанию = datetime.datetime.now)
    метаданные = BlobField ()
 

Вы можете определить другое поле в качестве первичного ключа, в этом случае это «id». столбец не будет создан.В этом примере мы будем использовать электронную почту человека адрес в качестве первичного ключа:

 класс Человек (Модель):
    email = CharField (primary_key = True)
    name = TextField ()
    dob = DateField ()
 

Предупреждение

Я часто вижу, как люди пишут следующее, ожидая автоинкремента. целочисленный первичный ключ:

 класс MyModel (Модель):
    id = IntegerField (primary_key = True)
 

Peewee понимает указанное выше объявление модели как модель с целым числом первичный ключ, но значение этого идентификатора определяется приложением.К создайте автоматически увеличивающийся целочисленный первичный ключ, вместо этого вы должны написать:

 класс MyModel (Модель):
    id = AutoField () # primary_key = True подразумевается.
 

Составные первичные ключи можно объявить с помощью CompositeKey . Примечание что это может вызвать проблемы с ForeignKeyField , как Peewee не поддерживает концепцию «составного внешнего ключа». Таким образом, я обнаружил рекомендуется использовать составные первичные ключи только в небольшом количестве ситуаций, такие как тривиальные таблицы соединений многие-ко-многим:

 класс Изображение (модель):
    имя файла = TextField ()
    mimetype = CharField ()

Тег класса (Модель):
    label = CharField ()

class ImageTag (Model): # Отношение "многие-ко-многим".image = ForeignKeyField (Изображение)
    tag = ForeignKeyField (Тег)

    класс Мета:
        primary_key = CompositeKey ('изображение', 'тег')
 

В очень редком случае вы хотите объявить модель с первичным ключом без , вы можете указать primary_key = False в параметрах модели Meta .

Нецелочисленные первичные ключи

Если вы хотите использовать нецелочисленный первичный ключ (который я обычно рекомендую), вы можете указать primary_key = True при создании поля.Когда вы хотите создать новый экземпляр для модели, используя неавтоматический первичный ключ, вы должны быть уверены, что save () , указав force_insert = Истина .

 от импорта *

класс UUIDModel (Модель):
    id = UUIDField (primary_key = True)
 

автоматически увеличивающихся идентификаторов, как следует из их названия, автоматически генерируются для вас. когда вы вставляете новую строку в базу данных. Когда ты звонишь save () , peewee определяет, делать ли INSERT или ОБНОВЛЕНИЕ на основе наличия значения первичного ключа.Поскольку с нашим uuid Например, драйвер базы данных не генерирует новый идентификатор, его нужно указать вручную. Когда мы вызываем save () в первый раз, передаем force_insert = True :

 # Это работает, потому что .create () будет указывать `force_insert = True`.
obj1 = UUIDModel.create (id = uuid.uuid4 ())

# Однако это не сработает. Peewee попытается выполнить обновление:
obj2 = UUIDModel (id = uuid.uuid4 ())
obj2.save () # НЕПРАВИЛЬНО

obj2.save (force_insert = True) # ПРАВИЛЬНО

# После создания объекта вы можете вызвать save () обычным образом.obj2.save ()
 

Примечание

Любые внешние ключи к модели с нецелочисленным первичным ключом будут иметь ForeignKeyField использует тот же базовый тип хранилища, что и первичный ключ они связаны с.

Составные первичные ключи

Peewee имеет очень простую поддержку составных ключей. Чтобы использовать композит key, вы должны установить для атрибута primary_key параметров модели значение CompositeKey экземпляр:

 класс BlogToTag (Модель):
    "" "Простая" сквозная "таблица для отношения" многие ко многим "."" "
    blog = ForeignKeyField (Блог)
    tag = ForeignKeyField (Тег)

    класс Мета:
        primary_key = CompositeKey ('блог', 'тег')
 

Предупреждение

Peewee не поддерживает внешние ключи для моделей, которые определяют CompositeKey первичный ключ. Если вы хотите добавить внешний ключ к модели с составным первичным ключом, реплицируйте столбцы на связанную модель и добавьте настраиваемый аксессуар (например, свойство).

Указание первичных ключей вручную

Иногда вы не хотите, чтобы база данных автоматически генерировала значение для первичный ключ, например, при массовой загрузке реляционных данных.Чтобы справиться с этим на основе одноразового , вы можете просто сказать peewee выключить auto_increment при ввозе:

 data = load_user_csv () # загружаем кучу данных

User._meta.auto_increment = False # отключить автоматическое увеличение идентификаторов
с db.atomic ():
    для строки в данных:
        u = Пользователь (id = row [0], username = row [1])
        u.save (force_insert = True) # <- заставить peewee вставить строку

User._meta.auto_increment = True
 

Хотя лучший способ выполнить вышеперечисленное, не прибегая к хакам, - это использовать модель .insert_many () API:

 данные = load_user_csv ()
fields = [User.id, User.username]
с db.atomic ():
    User.insert_many (данные, поля = поля) .execute ()
 

Если вы всегда хотите контролировать первичный ключ, просто не используйте тип поля AutoField , но используйте обычный IntegerField (или другой тип столбца):

 класс Пользователь (BaseModel):
    id = IntegerField (primary_key = True)
    имя пользователя = CharField ()

>>> u = Пользователь.создать (id = 999, username = 'кто-нибудь')
>>> u.id
999
>>> User.get (User.username == 'кто-то'). Id
999
 

Модели без первичного ключа

Если вы хотите создать модель без первичного ключа, вы можете указать primary_key = False во внутреннем классе Meta :

 класс MyData (BaseModel):
    отметка времени = DateTimeField ()
    значение = IntegerField ()

    класс Мета:
        primary_key = Ложь
 

Это даст следующий DDL:

 СОЗДАТЬ ТАБЛИЦУ "mydata" (
  "отметка времени" DATETIME NOT NULL,
  "значение" INTEGER NOT NULL
)
 

Циклические зависимости внешнего ключа

Иногда бывает так, что вы создаете круговую зависимость между двумя столы.

Примечание

Лично я считаю, что круговые внешние ключи - это запах кода и следует провести рефакторинг (например, добавив промежуточную таблицу).

Добавить круговые внешние ключи с peewee немного сложно, потому что в то время вы определяете любой внешний ключ, модель, на которую он указывает, не будет еще не определен, вызывая NameError .

 класс Пользователь (модель):
    имя пользователя = CharField ()
    избранное_tweet = ForeignKeyField (Tweet, null = True) # NameError !!

class Tweet (Модель):
    message = TextField ()
    user = ForeignKeyField (Пользователь, backref = 'твиты')
 

Один из вариантов - просто использовать IntegerField для хранения необработанного идентификатора:

 класс Пользователь (модель):
    имя пользователя = CharField ()
    избранное_tweet_id = IntegerField (null = True)
 

Используя DeferredForeignKey , мы можем обойти проблему и по-прежнему использовать поле внешнего ключа:

 класс Пользователь (модель):
    имя пользователя = CharField ()
    # Твит еще не определен, поэтому используйте отложенную ссылку.избранное_tweet = DeferredForeignKey ('Твитнуть', null = True)

class Tweet (Модель):
    message = TextField ()
    user = ForeignKeyField (Пользователь, backref = 'твиты')

# Теперь, когда твит определен, «избранное_tweet» было преобразовано в
# ForeignKeyField.
печать (User.favorite_tweet)
# 
 

Но есть еще одна причуда, на которую стоит обратить внимание. Когда ты звонишь create_table мы снова столкнемся с той же проблемой. За по этой причине peewee не будет автоматически создавать ограничение внешнего ключа для любые отложенные внешних ключа.

Чтобы создать таблицы и ограничения внешнего ключа, вы можете использовать SchemaManager.create_foreign_key () метод для создания ограничения после создания таблиц:

 # Создает таблицы пользователей и твитов, но * не * создает
# ограничение внешнего ключа для User.favorite_tweet.
db.create_tables ([Пользователь, твит])

# Создайте ограничение внешнего ключа:
User._schema.create_foreign_key (User.favorite_tweet)
 

Примечание

Поскольку SQLite имеет ограниченную поддержку изменения таблиц, внешний ключ ограничения не могут быть добавлены в таблицу после ее создания.

Глава 2. Другие модели содействия здоровью и развитию общества | Раздел 1. Разработка логической модели или теории изменений | Основной раздел

Узнайте, как создать и использовать логическую модель, визуальное представление действий, результатов и ожидаемых результатов вашей инициативы.

  • Что такое логическая модель?
  • Когда можно использовать логическую модель?
  • Как создать логическую модель?
  • Что делает логическую модель эффективной?
  • Каковы преимущества и ограничения логического моделирования?

Что такое логическая модель?

Логическая модель представляет собой картину того, как должны работать ваши усилия или инициативы.Это объясняет, почему ваша стратегия - хорошее решение возникшей проблемы. Эффективные логические модели представляют собой явное, часто визуальное изложение действий, которые приведут к изменениям, и результатов, которые вы ожидаете увидеть для сообщества и его людей. Логическая модель помогает участникам двигаться в одном направлении, предоставляя общий язык и ориентиры.

Логические модели становятся не просто инструментом наблюдателя, они становятся частью самой работы. Они активизируют и мобилизуют поддержку инициативы, точно заявляя, чего вы пытаетесь достичь и как.

В этом разделе термин «логическая модель» используется как общее обозначение для множества способов отображения того, как происходят изменения.

Некоторые другие названия включают:

  • карта дорог, концептуальная карта или карта маршрутов
  • ментальная модель
  • чертеж для сдачи
  • рамки действий или рамки программы
  • теория программ или гипотеза программы
  • теоретическое обоснование или обоснование
  • причинно-следственная цепочка или причинно-следственная связь
  • теория изменений или модель изменений

Каждый метод сопоставления или моделирования использует несколько иной подход, но все они основаны на логической основе, в частности, на логике того, как происходят изменения.Как бы вы это ни называли, логическая модель поддерживает работу по укреплению здоровья и развитию сообщества, отображая курс трансформации сообщества по мере его развития.

Несколько слов о логике

Слово «логика» имеет множество определений. Как раздел философии, ученые посвящают всю свою карьеру практике. Как структурированный метод рассуждений, математики полагаются на него в поисках доказательств. В мире машин единственный язык, который понимает компьютер, - это логика его программиста.

Однако есть еще одно значение, которое ближе к сути изменений сообщества: логика того, как все работает. Рассмотрим, например, логику движения транспорта в час пик. Никто этого не планирует. Никто не контролирует это. Тем не менее, благодаря опыту и осознанию повторяющихся закономерностей мы понимаем их и во многих случаях можем успешно избегать их проблем (попутно попутно, выбрав альтернативные маршруты и т. Д.).

Логика в этом смысле относится к «отношениям между элементами, а также между элементом и целым."Все мы обладаем большой способностью видеть закономерности в сложных явлениях. Мы видим системы в действии и находим в них внутреннюю логику, набор правил или отношений, которые управляют поведением. Работая в одиночку, мы обычно можем различить логику простого А, работая в группах, при необходимости настойчиво в течение долгого времени, вряд ли найдется какая-либо система прошлого или настоящего, логику которой мы не можем расшифровать.

С другой стороны, мы можем спроецировать логику в будущее. Обладая пониманием контекста и знанием причин и следствий, мы можем строить логические теории изменений, гипотезы о том, как события будут разворачиваться либо сами по себе, либо под влиянием запланированных вмешательств.Как и все прогнозы, эти гипотезы хороши ровно настолько, насколько хороши их лежащие в основе логики. Магические предположения, слабые рассуждения и нечеткое мышление увеличивают шансы того, что, несмотря на наши усилия, будущее окажется не таким, как мы ожидаем или надеемся. С другой стороны, некоторые события, кажущиеся неожиданными для непосвященных, не станут неожиданностью для давних жителей и внимательных наблюдателей.

Задача разработчика логического моделирования - найти и точно представить мудрость тех, кто лучше всех знает, как происходят изменения в сообществе.

Логика в логическом моделировании

Подобно дорожной карте, логическая модель показывает пройденный маршрут (или предпринятые шаги) для достижения определенного пункта назначения. Подробная модель показывает, как именно каждое действие приведет к желаемым изменениям. В качестве альтернативы, более широкий план показывает выбранные маршруты и то, как далеко вы пойдете. Этот аспект «дорожной карты» логической модели показывает, что вызывает что и в каком порядке. В различных точках карты вам может потребоваться остановиться, проверить свой прогресс и внести необходимые коррективы.

Логическая модель также выражает мысли, лежащие в основе плана инициативы. Это объясняет, почему программа должна работать, почему она может быть успешной там, где другие попытки потерпели неудачу. Это «теория программ» или «обоснование» логической модели. Определяя проблему или возможность и показывая, как меры вмешательства будут реагировать на нее, логическая модель делает допущения разработчиков программы явными.

Форма, которую принимает логическая модель, является гибкой и не обязательно должна быть линейной (если логика вашей программы сама по себе не является линейной).Блок-схемы, карты или таблицы являются наиболее распространенными форматами. Также можно использовать сеть, концептуальную карту или Интернет для описания отношений между более сложными программными компонентами. Можно даже построить модели на основе культурных символов, описывающих трансформацию, таких как колесо медицины коренных американцев, если заинтересованные стороны сочтут это уместным.

См. «Универсальную модель для контроля и профилактики заболеваний / травм» в разделе «Примеры», чтобы проиллюстрировать, как одна и та же информация может быть представлена ​​в линейном или нелинейном формате.

Какую бы форму вы ни выбрали, логическая модель должна обеспечивать направление и ясность, представляя общую картину изменений вместе с некоторыми важными деталями. Давайте проиллюстрируем типичные компоненты логической модели на примере программы наставничества в сообществе, где процент отсева из средней школы очень высок. Назовем эту программу «В пути».

  • Цель , или миссия. Что мотивирует необходимость перемен? Это также может быть выражено как проблемы или возможности, которые решает программа.(Для On Track сообщество сосредоточило внимание сторонников на миссии по укреплению здорового развития молодежи с целью повышения уровня отсева из средней школы.)
  • Контекст или условия. В каком климате произойдут изменения? (Как новая политика и программы «В пути» будут согласованы с существующими? Какие тенденции конкурируют с усилиями по вовлечению молодежи в позитивную деятельность? Каков политический и экономический климат для инвестирования в развитие молодежи?)
  • Входы , ресурсы или инфраструктура.Какое сырье будет использовано для реализации инициативы или инициативы? (В On Track эти материалы являются координаторами и волонтерами программы наставничества, соглашениями с участвующими школьными округами и одобрением родительских групп и общественных агентств.) Входы также могут включать ограничения программы, такие как нормативные акты или дефицит финансирования, которые являются препятствиями на пути к вашим целям.
  • Действия , или вмешательства. Что будет делать инициатива со своими ресурсами, чтобы направить ход изменений? (В нашем примере программа будет обучать наставников-волонтеров и направлять молодых людей, которым мог бы помочь наставник.) Ваше вмешательство и, следовательно, ваша логическая модель должны основываться на четком анализе факторов риска и защитных факторов.
  • Выходы . Какие есть доказательства того, что мероприятия были выполнены в соответствии с планом? (Показатели могут включать количество подготовленных наставников и направленных молодых людей, а также частоту, тип, продолжительность и интенсивность наставнических контактов.)
  • Эффекты или результаты, последствия, исходы или воздействия. Какие изменения произошли в результате прямого или косвенного воздействия этой деятельности? (Два примера - это связь между взрослыми наставниками и молодежью и повышение самооценки молодежи.)

Графическое объединение этих элементов дает следующую базовую структуру логической модели. Стрелки между прямоугольниками указывают на то, что проверка и корректировка - это непрерывный процесс - как при реализации инициативы, так и при разработке модели.

Используя эту общую модель в качестве шаблона, давайте дополним детали еще одним примером логической модели, которая описывает усилия сообщества по профилактике туберкулеза.

Помните , хотя в этом примере используются прямоугольники и стрелки, вы и ваши партнеры по изменениям можете использовать любой формат или изображения, которые более эффективно взаимодействуют с вашими заинтересованными сторонами.

Как упоминалось ранее, общая модель для контроля и профилактики заболеваний / травм в примерах отображает те же отношения действий и эффектов в линейном и нелинейном форматах. Эти два формата помогли общаться с разными группами заинтересованных сторон и высказали разные мнения.

Линейная модель лучше направляет обсуждение причин и следствий и того, на каком этапе цепочки следствий конкретная программа была успешной. Круговая модель более эффективно изображает взаимозависимость компонентов для получения желаемых эффектов.

Изучая результаты вмешательства, помните, что между действиями и их последствиями могут быть большие задержки. Кроме того, определенные системные изменения могут запускать петли обратной связи, которые еще больше усложняют и задерживают нашу способность видеть все эффекты. (Здесь может помочь определение Общества системной динамики: «Обратная связь относится к ситуации, когда X влияет на Y и Y, в свою очередь, влияя на X, возможно, через цепочку причин и следствий. Невозможно изучить связь между X и Y и независимо , связь между Y и X и прогнозирование поведения системы.Только изучение всей системы как системы обратной связи приведет к правильным результатам. ")

По этим причинам логические модели указывают, когда следует ожидать определенных изменений. Многие специалисты по планированию любят использовать следующие три категории эффектов (проиллюстрированные на моделях выше), хотя вы можете выбрать больше или меньше в зависимости от вашей ситуации.

  • Краткосрочные или немедленные эффекты. (В примере «На правильном пути» это будет означать, что молодые люди, участвующие в наставничестве, улучшают свою уверенность в себе и понимают важность продолжения учебы в школе.)
  • Среднесрочные или промежуточные эффекты. (Учащиеся с наставниками улучшают свои оценки и остаются в школе.)
  • Долгосрочные или окончательные эффекты. (Количество выпускников средней школы растет, что дает выпускникам больше возможностей трудоустройства, большую финансовую стабильность и улучшение состояния здоровья.)

Вот два важных примечания о построении и уточнении логических моделей.

Результат или влияние?

Уточните свой язык. В совместном проекте разумно предвидеть путаницу из-за языка. Если вы понимаете основные элементы логической модели, любые ярлыки могут иметь смысл, если с ними согласны заинтересованные стороны. В общих моделях и моделях ТБ мы назвали эффекты краткосрочными, среднесрочными и долгосрочными. Также часто можно услышать, как люди говорят об эффектах, которые находятся «вверх по течению» или «проксимальнее» (рядом с занятиями), в отличие от «нижестоящих» или «дистальных» (далеких от деятельности). Поскольку у дисциплин есть свой жаргон, заинтересованные стороны из двух разных областей могут определять одно и то же слово по-разному.

Некоторых людей учат называть самые ранние эффекты «результатами», а более поздние - «воздействиями». Других учат обратному: сначала идут «воздействия», а затем «результаты». Идея последовательности остается неизменной, независимо от того, какие термины вы и ваши партнеры используете. Главное - четко показать связи между действиями и эффектами с течением времени, тем самым четко обозначив предположения вашей инициативы о том, каких изменений ожидать и когда. Попытайтесь определить основные концепции на этапе проектирования, а затем будьте последовательны в использовании терминов.Процесс разработки логической модели поддерживает этот важный диалог и выявляет возможные недопонимания.

Хорошо или плохо?

Понять эффекты. Хотя отправной точкой для логического моделирования является определение эффектов, которые соответствуют заявленным целям, ваш предполагаемый эффект - не единственные эффекты, за которыми следует следить. Любое вмешательство, способное изменить проблемное поведение или изменить условия в сообществах, также может вызвать непредвиденные эффекты.Это изменения, которые никто не планирует и которые могут как-то усугубить проблему.

Часто наши попытки решить проблему приводят к неожиданным, противоречащим интуиции результатам. Всегда существует риск, что наше «лекарство» может оказаться хуже, чем «болезнь», если мы не будем осторожны. Частично добавленная ценность логического моделирования заключается в том, что этот процесс создает форум для тщательного изучения больших скачков веры, способ поиска непредвиденных эффектов. (См. Обсуждение симуляции в разделе «Что делает логическую модель эффективной», чтобы узнать, как это сделать дисциплинированно.)

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

Выбор правильного уровня детализации: важность практичности и простоты

На этом этапе может быть полезно рассмотреть, чем логическая модель не является. Хотя он отражает общую картину, это не точное представление обо всем, что происходит.Все модели упрощают реальность; если бы они этого не сделали, от них не было бы много пользы.

Хорошая модель, хотя и не учитывает информацию, представляет те аспекты инициативы, которые, по мнению заинтересованных сторон, наиболее важны для понимания того, как работают эти усилия. В большинстве случаев разработчики просматривают несколько черновиков, прежде чем создать версию, которая, по мнению заинтересованных сторон, точно отражает их историю.

Если информация становится слишком сложной, можно создать семейство связанных моделей или вложенных моделей, каждая из которых имеет разный уровень детализации.Одна модель могла бы обрисовать общие пути изменений, тогда как другие могли бы детализировать отдельные компоненты, раскрывая подробную информацию о том, как программа работает на более глубоком уровне. По отдельности каждая модель передает только важную информацию, а вместе они обеспечивают более полный обзор того, как работает программа или инициатива. (См. «Как создать логическую модель?» для получения дополнительной информации.)

Представьте себе «приближение» к внутренней работе определенного компонента и создание другой, более подробной модели только для этой части.Для сложной инициативы вы можете разработать целое семейство таких связанных моделей, которые отображают, как работает каждая часть усилий, а также как все части сочетаются друг с другом. В конце концов, у вас могут быть все или некоторые из следующих семейств моделей, каждая из которых различается по объему:

  • Вид из космоса. Эта общая дорожная карта показывает основные пути изменений и полный спектр эффектов. Эта точка зрения отвечает на такие вопросы: следуют ли действия по единому пути или существуют отдельные пути, сходящиеся по линии? Как далеко заходит цепочка эффектов? Как наша программная деятельность согласуется с деятельностью других организаций? Какие еще силы могут повлиять на эффекты, которые мы надеемся увидеть? Где можно ожидать появления петель обратной связи и в каком направлении они будут двигаться? Есть ли значительные задержки между подключениями?
  • Вид с вершины горы.Этот более подробный взгляд фокусируется на конкретном компоненте или наборе компонентов, но все же он достаточно широк, чтобы описать инфраструктуру, действия и полную последовательность эффектов. Этот вид отвечает на те же вопросы, что и вид из космоса, но только в отношении выбранных компонентов.
  • Ты здесь. Это представление расширяет конкретную часть последовательности, такую ​​как роли различных заинтересованных сторон, сотрудников или агентств в коалиции, и функционирует как блок-схема для чьего-либо рабочего плана.Это особая модель, которая описывает рутинные процессы и ожидаемые эффекты. Это точка зрения, которая может потребоваться для понимания контроля качества в рамках инициативы.

Семейства, вложение и увеличение масштаба
В разделе «Примеры» идея вложенных моделей проиллюстрирована в семействе моделей Tobacco Control. Он включает в себя глобальную модель, которая охватывает три промежуточных результата в борьбе против табака - окружающая среда без табачного дыма, сокращение числа случаев начала курения среди молодежи и увеличение числа отказов от табака среди молодежи и взрослых.Затем для каждого из этих промежуточных результатов разрабатывается модель увеличения.

Всеобъемлющая модель рака иллюстрирует общую логическую модель, сопровождаемую увеличенным масштабом деятельности, чтобы предоставить сотрудникам программы конкретные детали, которые им нужны. Примечательно, что предполагаемые эффекты при увеличении масштаба идентичны таковым для глобальной модели, и все основные категории действий также очевидны. Но увеличение масштаба распаковывает эти действия в их подробные компоненты и, что более важно, указывает, что действия достигают своего эффекта, влияя на посредников, которые затем побуждают привратников действовать.Такой уровень детализации необходим для сотрудников программы, но может оказаться слишком большим для обсуждения с спонсорами и заинтересованными сторонами.

Модель «Контроль диабета» - еще один хороший пример семейства моделей. В этом случае модели с увеличением очень похожи на глобальную модель по уровню детализации. Они добавляют ценность, переводя глобальную модель в план для конкретных участников (в данном случае государственная программа контроля диабета) или для конкретных целей (например, увеличение своевременности обследований стоп).

Когда можно использовать логическую модель?

Логические модели полезны как для новых, так и для существующих программ и инициатив. Если ваши усилия планируются, логическая модель может помочь начать их хорошо. В качестве альтернативы, если ваша программа уже выполняется, модель может помочь вам описать, изменить или улучшить ее.

Планировщики, менеджеры программ, инструкторы, оценщики, защитники и другие заинтересованные стороны могут использовать логическую модель несколькими способами в рамках инициативы. Одна модель может служить нескольким целям, или может потребоваться создание разных версий, предназначенных для разных целей.Вот примеры различных случаев, когда можно было использовать логическую модель.

Во время планирования на:

  • Уточнить стратегию программы
  • определить соответствующие цели результатов (и избегать чрезмерных обещаний)
  • Совместите свои усилия с усилиями других организаций
  • написать грантовую заявку или запрос предложений
  • оценить потенциальную эффективность подхода
  • установить приоритеты для распределения ресурсов
  • оценка сроков
  • определить необходимые партнерские отношения
  • согласовать роли и обязанности
  • сфокусируйте обсуждения и сделайте планирование более эффективным

В процессе внедрения на:

  • предоставьте перечень того, что у вас есть и что вам нужно для работы программы или инициативы
  • разработать план управления
  • включают результаты исследований и демонстрационных проектов
  • внести промежуточные корректировки
  • уменьшить или избежать непреднамеренных эффектов

Во время ознакомления сотрудников и заинтересованных сторон с:

  • объясните, как работает программа в целом
  • показать, как разные люди могут работать вместе
  • определяют, что каждый человек должен делать
  • указывают, как можно узнать, работает ли программа

Во время оценки на:

  • Выполнение документов
  • организовать свидетельство о программе
  • определить различия между идеальной программой и ее реальной работой
  • определяет, какие концепции будут (и не будут) оцениваться
  • формулируют вопросы об атрибуции (причины и следствия) и вкладе (компонентов инициативы в результаты)
  • указать характер задаваемых вопросов
  • готовить отчеты и другие СМИ
  • расскажите историю программы или инициативы

В ходе адвокации на:

  • Обоснуйте почему программа будет работать
  • объясните, как будут использоваться инвестиции в ресурсы

Как создать логическую модель?

Нет единого способа создать логическую модель.Думайте об этом как о чем-то, что нужно использовать, его форма и содержание определяются потребностями пользователей.

Кто создает модель? Это зависит от вашей ситуации. Те же люди, которые будут использовать модель - планировщики, руководители программ, инструкторы, оценщики, защитники и другие заинтересованные стороны - могут помочь в ее создании. Однако по практическим соображениям вы, вероятно, начнете с основной группы, а затем передадите рабочий проект другим для дальнейшего уточнения.

Помните, что ваша логическая модель - это живой документ, который рассказывает историю ваших усилий в сообществе.По мере изменения вашей стратегии должна меняться и модель. С другой стороны, при разработке модели вы можете увидеть новые пути, которые стоит изучить в реальной жизни.

При построении логической модели обычно комбинируются две основные стратегии разработки.

  • Переход от действий (также известный как логика вперед ). Этот подход исследует обоснование предлагаемых или осуществляемых в настоящее время мероприятий. Этим движет Но почему? вопросы или если-то мышление: Но почему мы должны сосредоточиться на брифинге сотрудников Сената? Но зачем нам они нужны, чтобы лучше понимать проблемы, с которыми сталкиваются дети? Но зачем им создавать политику и программы для поддержки наставничества? Но почему новая политика может иметь значение?.. и так далее. Та же самая аргументация может быть раскрыта с помощью утверждений «если-то»: если мы сосредоточимся на инструктаже законодателей, то они лучше поймут проблемы, затрагивающие детей. Если законодатели поймут, то они примут новую политику ...
  • Переход назад от эффектов (также известный как обратная логика ). Этот подход начинается с запоминания цели. Он начинается с четко определенной ценности, изменения, которое вы и ваши коллеги обязательно хотели бы увидеть, и задает серию вопросов: «Но как?» вопросы: Но как нам преодолеть страх и стигму? Но как мы можем гарантировать, что наши услуги культурно компетентны? Но как мы можем признать, что еще не знаем, что делаем?

Сначала вы можете не согласиться с ответами некоторых заинтересованных сторон на эти вопросы.Их логика может показаться неубедительной или даже не логичной. Но в этом сила логического моделирования. Делая мышление каждого заинтересованного лица видимым на бумаге, вы можете всей группой решить, разумна ли логика, лежащая в основе вашей инициативы. Вы можете говорить об этом, разъяснять неправильные толкования, спрашивать других мнений, проверять предположения, сравнивать их с результатами исследований и, в конце концов, разработать прочную систему логики программы. Затем этот продукт становится мощным инструментом для планирования, реализации, ориентации, оценки и защиты, как описано выше.

К настоящему времени вы, наверное, догадались, что не существует жесткого пошагового процесса разработки логической модели. Как и вся остальная общественная работа, логическое моделирование - это непрерывный процесс. Тем не менее, есть несколько задач, которые вы должны обязательно выполнить.

Чтобы проиллюстрировать это в действии, мы воспользуемся другим примером инициативы под названием «ДОМ: усилия по мобилизации домовладельцев». HOME стремится увеличить количество домовладений, чтобы дать контроль над соседством людям, которые там живут, а не внешним домовладельцам, не имеющим доли в сообществе.Это достигается за счет комбинации обучения жителей сообщества, организации района и построения отношений с такими партнерами, как предприятия.

Этапы построения логической модели

  • Найдите логику в существующих письменных материалах для создания своего первого черновика.
    • Доступные письменные материалы часто содержат более чем достаточно информации, чтобы начать работу. Соберите повествовательные описания, обоснования, заявки на гранты или обзорные документы, которые объясняют основную идею, лежащую в основе усилий по вмешательству.Если ваше предприятие включает в себя коалицию нескольких организаций, обязательно получите описания с точки зрения каждого агентства. Для кампании HOME мы собрали документы от планировщиков, которые предложили идею, а также от ипотечных компаний, ассоциаций домовладельцев и других местных организаций.
    • Ваша работа как разработчик логических моделей - расшифровать эти документы. Держите под рукой лист бумаги и нарисуйте логические связи по мере их нахождения. (Эту работу можно выполнять в группе, чтобы сэкономить время и привлечь больше людей, если хотите.)
    • Прочтите каждый документ, обращая внимание на логическую структуру программы. Иногда эта логика будет четко прописана (например, информация, консультации и услуги поддержки, которые мы предоставляем жителям общины, помогут им повысить их кредитный рейтинг, получить право на жилищные ссуды, приобрести дома в общине; со временем эта программа изменится доля собственного жилья в микрорайоне).
    • В других случаях логика будет похоронена в расплывчатых формулировках, с большими скачками от действий к последующим эффектам (например,g., Наша комплексная программа для сообществ, которая преобразует районы, делая их контролируемыми людьми, которые там живут, а не посторонними, не заинтересованными в сообществе).
    • Читая каждый документ, спрашивайте себя: «Но почему? а как? вопросы. Посмотрите, дает ли письмо ответ. Обратите особое внимание на части речи. Глаголы, такие как учить, информировать, поддерживать или ссылаться, часто связаны с описанием программной деятельности. При описании ожидаемых эффектов часто используются такие прилагательные, как уменьшенный, улучшенный, высокий или лучший.
  • Определите соответствующий объем модели для предполагаемых пользователей и использования. Рассмотрите возможность создания семейства моделей для нескольких пользователей.
    • В рамках инициативы HOME, например, были созданы различные модели для удовлетворения уникальных потребностей их финансовых партнеров, руководителей программ и преподавателей местных сообществ. Ипотечные компании, грантополучатели и другие лица, принимающие решения, которые решали, выделять ли ресурсы на усилия, нашли глобальный взгляд из космоса наиболее полезным для определения контекста.Руководители программ хотели получить более близкий, но все же широкий обзор с вершины горы. И преподаватели сообщества извлекли наибольшую пользу из версии «Вы здесь». Важно помнить, что это не три разные программы, а разные способы понимания того, как работает одна и та же программа.
  • Проверьте, имеет ли модель смысл и целостность.
    • Логические модели передают историю изменений сообщества. Работая с заинтересованными сторонами, вы несете ответственность за то, чтобы история, которую вы рассказали в своем проекте, имела смысл (т.е., логично) и является законченным (не имеет лишних концов). По мере того, как вы итеративно уточняете модель, спрашивайте себя и других, отражает ли она всю историю.
    • Вот основные моменты сюжета, характерные для большинства инициатив по изменению сообщества, представленные с их «рассказывающими» названиями.
      • Земля обетованная (желаемые эффекты) . Показывает ли модель конкретные измеримые результаты, которых вы надеетесь достичь? Включает ли он большие шаги веры или показывает изменения через логическую последовательность эффектов? Выявлены важные изменения в поведении (например,g., больше заявок на домовладение, рост покупок жилья, более активное участие в общественной и гражданской жизни и т. д.)? И если предполагается, что эти изменения в поведении сохранятся, объясняет ли модель, как изменятся условия в сообществе, чтобы укрепить новое поведение (например, группы поддержки домовладельцев, снижение налогов на жилье, занимаемое владельцами, скидки в местном хозяйственном магазине для клиентов, которые владеют недвижимость по соседству и тд)? В модели HOME мы указали следующую последовательность эффектов:
        • Краткосрочные - потенциальные владельцы домов лучше понимают, как рассчитываются кредитные рейтинги, и получают более точную информацию о шагах по повышению кредитного рейтинга; ипотечные компании создают новые политики и процедуры, позволяющие арендаторам покупать собственные дома; местные предприятия запускают программы стимулирования; против незаконной практики кредитования поданы иски о недопущении дискриминации.
        • Среднесрочный - средний кредитный рейтинг сообщества улучшается; заявки на жилищные ссуды растут вместе со скоростью одобрения; службы поддержки созданы для тех, кто впервые покупает жилье; общественная организация становится сильнее, и альянсы расширяются и включают предприятия, агентства здравоохранения и выборных должностных лиц.
        • Долгосрочная перспектива - увеличивается доля жилья, занимаемого владельцами; оживление экономики набирает обороты по мере того, как предприятия инвестируют в сообщество; жители работают вместе, чтобы создать пешеходные тропы, патрули и проверки пожарной безопасности; резко снижаются показатели ожирения, преступности и травм.
      • Преимущество графической модели в том, что она может отображать как последовательность, так и взаимодействие эффектов. Например, в модели HOME консультирование по кредитам приводит к лучшему пониманию кредитных рейтингов, в то время как помощь ссуды приводит к большему количеству заявок на ссуды, но оба вместе (плюс другие действия, такие как новые программы для покупателей) необходимы для увеличения собственности на жилье.
  • Драма (мероприятия, выступления). Как будут преодолеваться препятствия? Кто чем занимается? Какие виды конфликтов и сотрудничества очевидны? Что делается для перегруппировки сил перемен? Какие новые услуги или условия вводятся? Ваши действия, основанные на четком анализе факторов риска и защиты, являются ответами на подобные вопросы. Ваши действия раскрывают драму в вашей истории направленных социальных изменений.

Драматические действия в рамках инициативы HOME включают проведение образовательных сессий и формирование деловых союзов, групп поддержки домовладельцев и районного организационного совета. Во время оценки каждое из этих действий тесно связано с индикаторами результатов, которые документируют, идет ли программа по графику и насколько быстро она продвигается. Этими выходными данными могут быть количество проведенных образовательных сессий, их средняя посещаемость, размер бизнес-альянса и т. Д. (Эти результаты не отображаются в глобальной модели, но это можно сделать, если они будут полезны для пользователей.)

  • Сырье (вводимые ресурсы, ресурсы или инфраструктура). Энергия для создания изменений не может исходить из ничего. Реальные ресурсы должны поступать в систему. Эти ресурсы могут быть финансовыми, но они также могут включать людей, пространство, информацию, технологии, оборудование и другие активы. Кампания HOME проводится благодаря участию преподавателей-волонтеров, поддержке школ и религиозных организаций в районе, скидкам, предоставляемым кредиторами и местными предприятиями, доходам от восстановления района и увеличению социального капитала среди жителей сообщества.
  • Настройка (фон, контекст и условия). Действительно хорошие истории передают факты, но в них также есть текстура. Есть фон, на котором происходит основное действие. Изменения в сообществе всегда происходят в контексте истории, географии, политики и т. Д. Хотя невозможно представить все эти факторы в модели, вы можете попытаться включить функции, которые напоминают пользователям о существовании этих условий и будут влиять на то, как происходят изменения.
    • Заинтересованные стороны, работающие над кампанией HOME, поняли, что они бросают вызов истории расовой дискриминации и экономической несправедливости.Они видели, как в соседних районах происходит джентрификация. Они знали о негативной реакции со стороны внешних владельцев собственности, которые извлекают выгоду из существующего положения вещей. Ни один из этих фактов не включен в модель как таковую, но было добавлено заштрихованное поле с надписью History and Context, чтобы служить визуальным напоминанием о том, что эти вещи находятся в фоновом режиме.
  • Поговорите с гайками и болтами рисования модели.
    • Составьте логическую модель, используя обе стороны вашего мозга и все таланты ваших заинтересованных сторон.Используйте свои художественные и аналитические способности .
    • Организовать действия и ожидаемые эффекты в ожидаемой временной последовательности. И не забудьте включить важные петли обратной связи - в конце концов, большинство действий вызывают реакцию.
    • Связывайте компоненты, рисуя стрелки или используя другие визуальные методы, которые сообщают порядок действий и эффектов. (Помните - модель не обязательно должна быть линейной или читаться слева направо, сверху вниз. Круг может лучше отображать повторяющийся цикл.)
    • Позвольте себе достаточно места для разработки модели. Свободно пересматривайте картинку, чтобы лучше показать взаимосвязи или добавить компоненты.
    • Важна аккуратность, поэтому избегайте перекрывающихся линий и ненужного беспорядка.
    • Цветовой код областей модели, помогающий передать основную сюжетную линию.
    • Постарайтесь, чтобы все было на одной странице. Когда модель становится слишком загруженной, либо скорректируйте ее объем, либо создайте вложенные модели.
    • Убедитесь, что он прошел "тест на смех". То есть убедитесь, что создаваемый имидж не настолько сложен, чтобы сразу вызвать смех у заинтересованных сторон.Конечно, у разных стейкхолдеров разные пороги смеха.
    • Используйте PowerPoint или другое компьютерное программное обеспечение, чтобы анимировать модель, создавая ее шаг за шагом, чтобы, когда вы представляете ее людям в аудитории, они могли следовать логике, лежащей в основе каждого соединения.
  • Пересмотрите и будьте готовы изменить модель по мере необходимости.
    • Не позволяйте вашей модели превратиться в утомительное занятие, которое вы выполняли только для того, чтобы удовлетворить кого-то другого. Не оставляйте его в ящике.После того, как вы приложили усилия для создания модели, вознаграждение будет в ее использовании. Часто пересматривайте его и будьте готовы вносить изменения. Все программы развиваются и меняются со временем, хотя бы для того, чтобы идти в ногу с меняющимися условиями в сообществе. Как и дорожная карта, хорошая модель поможет вам распознать новую или переосмыслить старую территорию.
    • Кроме того, когда ситуация быстро меняется, сотрудники легко теряют из виду свои общие цели. Наличие хорошо разработанной логической модели может удерживать заинтересованные стороны в сосредоточении на достижении результатов, оставаясь при этом открытыми для поиска лучших средств для выполнения работы.Если вам нужно сделать объезд или сделать более длительную остановку, модель служит основой для учета изменений.
    • По мере того, как вы улучшаете, изменяете или перестраиваете свою модель, оценивайте возникающие действия и эффекты. Возможно, вам потребуется выполнить одно или несколько из следующих действий:
      • Уточнить путь действий к эффектам и результатам
      • Проработанные ссылки
      • Расширяйте деятельность для достижения своих целей
      • Установить или изменить отметки миль
      • Измените границы своей инициативы или программы
      • Переосмыслить цели или желаемые результаты

Что делает логическую модель эффективной?

Вы узнаете об эффективности модели в основном по ее полезности для предполагаемых пользователей.Обычно хорошая логическая модель:

  • Логически связывает действия и эффекты
  • Визуально привлекательный (простой, скупой), но содержит соответствующую степень детализации для цели (не слишком простой и не слишком запутанный)
  • Заставляет задуматься, вызывает вопросы
  • Включает силы, которые, как известно, влияют на желаемые результаты

Чем полнее ваша модель, тем больше у вас шансов попасть в "землю обетованную" в истории. Чтобы рассказать полную историю или представить полную картину в вашей модели, обязательно учитывайте все силы изменения (основные причины, тенденции и системную динамику).Выявляет ли ваша модель предположения и гипотезы о коренных причинах и петлях обратной связи, которые способствуют возникновению проблем и их решениям?

В модели ДОМА, например, низкий уровень владения жильем сохраняется, когда существует порочный круг дискриминации, плохой кредитной истории и безнадежности, препятствующих организационным и социальным изменениям в масштабах всего района. Чтобы разорвать этот круг, было предложено три пути изменений: образование; реформа бизнеса; и организация соседства. Построение модели по одному пути решения только одной силы ограничило бы эффективность программы.

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

Найдите время для моделирования

После того, как вы наметили структуру стратегии программы, есть еще один важный шаг, который необходимо сделать, прежде чем приступить к действию: какое-то моделирование.Какой бы логичной ни казалась история, которую вы рассказываете, как план вмешательства, он может потерпеть неудачу, если вы не изучили, как все может обернуться в реальном мире обратной связи и сопротивления.

Моделирование - один из наиболее практичных способов выяснить, действительно ли кажущийся разумным план реализуется так, как вы надеетесь. Моделирование - это не то же самое, что тестирование модели с заинтересованными сторонами, чтобы увидеть, имеет ли она логический смысл. Смысл симуляции - увидеть, как все будет меняться - как система будет себя вести - с течением времени и в различных условиях.

Хотя моделирование - мощный инструмент, его можно проводить разными способами, от простых до сложных.

  • Моделирование может быть таким же простым, как неструктурированная ролевая игра, в которой вы доводите модель до логических выводов.
  • В более структурированном моделировании вы могли бы разработать настольное упражнение, в котором вы шаг за шагом продвигаетесь по заданному сценарию с заранее определенными ролями и обязанностями для участников.
  • В конечном счете, вы можете создать компьютерное математическое моделирование, используя любое количество доступных программных инструментов.

Ключевой момент, о котором следует помнить, заключается в том, что создание логических моделей и моделирование того, как эти модели будут вести себя, включают два разных набора навыков, оба из которых необходимы для определения того, какие стратегии изменений будут эффективными в вашем сообществе.

Каковы преимущества и ограничения логического моделирования?

Вы, вероятно, можете представить себе множество способов использования разработанной вами логической модели или того, что логическое моделирование принесет пользу вашей работе.

Вот несколько преимуществ, которые обнаружили опытные разработчики моделей.

  • Логические модели объединяют планирование, реализацию и оценку. Как подробное описание вашей инициативы, от ресурсов до результатов, логическая модель одинаково важна для планирования, реализации и оценки проекта. Если вы планируете, процесс моделирования заставляет вас думать больше как оценщик. Если ваша цель - оценка, моделирование побуждает обсудить планирование.А для тех, кто внедряет, моделирование дает ответы на практические вопросы о том, как будет организована работа и как ей управлять.
  • Логические модели предотвращают несоответствие между действиями и эффектами. Планировщики часто резюмируют усилия, перечисляя их видение, миссию, цели, стратегии и планы действий. Даже имея эту информацию, может быть трудно сказать, как все элементы сочетаются друг с другом. Связывая действия и эффекты, логическая модель помогает избежать предложения действий без ожидаемого эффекта или прогнозирования эффектов без поддерживающих действий.Возможность легко обнаружить такие несоответствия, возможно, является основной причиной того, почему так много логических моделей используют формат блок-схемы.
  • Логические модели используют возможности партнерства. Поскольку W.K. Kellogg Foundation отмечает (см. Интернет-ресурсы ниже), уточнение логической модели - это итеративный или повторяющийся процесс, который позволяет участникам «вносить изменения на основе достижения консенсуса и логического процесса, а не на личностях, политике или идеологии. Ясность мышления. то, что происходит в процессе построения модели, становится важной частью общего успеха программы.«С помощью четко определенной логической модели можно отметить, где эстафету следует передать от одного человека или агентства к другому. Это расширяет возможности сотрудничества и защищает от того, что вещи падают сквозь щели».
  • Логические модели повышают подотчетность, позволяя заинтересованным сторонам сосредоточиться на результатах. Как отмечают Конни Шмитц и Беверли Парсонс (см. Интернет-ресурсы), список действий обычно служит руководством для менеджера по запуску проекта, показывая, что нужно сделать персоналу или другим лицам, например: «Нанять аутрич-работника. для туберкулезного диспансера.«Однако с помощью логической модели можно также проиллюстрировать эффекты этих задач - например,« Наем аутрич-работника приведет к увеличению доли клиентов, приходящих в клинику для лечения ». Этот краткосрочный эффект затем подключается к средне- и долгосрочным эффектам, таким как «Довольные клиенты направляют других в клинику» и «Улучшение охвата скринингом и лечением приводит к меньшему количеству смертей от туберкулеза».

В коалиции или совместном партнерстве логическая модель дает понять, какие эффекты создает каждый партнер и как все эти эффекты сводятся к общей цели.Подход семьи или вложенности хорошо работает в совместном партнерстве, потому что модель может быть разработана для каждой цели в соответствии с последовательностью эффектов, тем самым показывая слои вкладов и точки пересечения.

  • Логические модели помогают планировщикам устанавливать приоритеты для распределения ресурсов . Комплексная модель покажет, где необходимы физические, финансовые, человеческие и другие ресурсы. Когда планировщики обсуждают варианты и устанавливают приоритеты, логическая модель может помочь им принять решения, связанные с ресурсами, в свете того, как это повлияет на деятельность и результаты программы.
  • Логические модели выявляют потребности в данных и обеспечивают основу для интерпретации результатов. Можно разработать систему документации, которая включает только начальные и конечные измерения. Это рискованная стратегия, которая может привести к неутешительным результатам. Альтернативный подход требует отслеживания изменений на каждом этапе запланированной последовательности эффектов. С помощью логической модели разработчики программ могут определять промежуточные эффекты и определять для них измеримые индикаторы.
  • Логические модели улучшают обучение за счет интеграции результатов исследований и практических знаний . Большинство инициатив основаны на предположениях о поведении и условиях, которые необходимо изменить, и о том, как они могут быть подвергнуты вмешательству. Часто эти предположения имеют разную степень уверенности. Например, некоторые связи в логической модели могли быть проверены и оказались надежными в ходе предыдущих исследований. Другие связи, напротив, возможно, никогда не исследовались, более того, возможно, никогда раньше не пытались и не думали о них.Явная форма логической модели означает, что вы можете комбинировать научно обоснованные практики из предыдущих исследований с новаторскими идеями, которые, по мнению опытных практиков, будут иметь значение. Если вы вооружены логической моделью, критикам будет нелегко заявить, что ваша работа не основана на доказательствах.
  • Логические модели определяют общий язык и общее видение изменений сообщества . Термины, используемые в модели, помогают стандартизировать то, как люди думают и как они говорят об изменениях в сообществе.Он побуждает всех двигаться в одном направлении и улучшает общение с внешней аудиторией, такой как СМИ или потенциальные спонсоры. Даже заинтересованные стороны, которые скептически или враждебно относятся к вашей работе, могут быть вовлечены в обсуждение и разработку логической модели. Как только вы заставите их говорить о логической связи между действиями и эффектами, они больше не будут критиковать со стороны. Они будут заниматься решением проблем, и они будут делать это на открытом форуме, где каждый сможет увидеть их сопротивление изменениям или отсутствие логики, если это так.

Ограничения

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

Во-первых, какой бы логичной ни казалась ваша модель, всегда есть опасность, что она не будет правильной. Мир иногда работает неожиданным, нелогичным образом, а это означает, что мы можем не постичь логику изменений до тех пор, пока это не произойдет. Имея это в виду, разработчики моделей оценят тот факт, что реальные эффекты вмешательств могут отличаться от предполагаемых.Некоторые действия могут даже усугубить проблемы, поэтому важно следить за планом, а другой - за реальным опытом членов сообщества.

Во всяком случае, логическая модель должна быть логичной. В этом его сила и его слабость. Те, кто пытается следовать вашей логике, усугубят любую непоследовательность или неточность. Это возлагает на моделистов большую ответственность - обращать внимание на детали и в значительной степени совершенствовать собственное мышление. Конечно, ни одна модель не может быть идеальной.Вам нужно будет решить, какой уровень точности требуется на основе использования заинтересованных сторон.

Установление соответствующих границ логической модели может быть сложной задачей. В большинстве случаев возникает противоречие между сосредоточением внимания на конкретной программе и помещением этих усилий в ее более широкий контекст. Многие модели, кажется, предполагают, что единственные силы изменения исходят изнутри рассматриваемой программы, как если бы в песочнице только один ребенок.

С другой стороны, было бы нелепо и непродуктивно отображать все одновременные силы изменений, которые влияют на здоровье и развитие общества.Задача разработчика модели состоит в том, чтобы включить достаточно глубины, чтобы организационный контекст был ясен, не упуская из виду причины для разработки логической модели в первую очередь.

На чисто практическом уровне логическое моделирование также может занимать много времени, требовать много энергии вначале и постоянного внимания на протяжении всего срока реализации инициативы. Процесс может потребовать высокой степени специфичности; он рискует чрезмерно упростить сложные отношения и полагается на навыки художников-графиков для передачи сложных мыслительных процессов.

Действительно, логические модели может быть очень сложно создать, но процесс их создания, а также продукт, принесут много преимуществ в ходе реализации инициативы.

Вкратце

Логическая модель - это история или изображение того, как должно работать усилие или инициатива. Процесс разработки модели объединяет заинтересованные стороны, чтобы сформулировать цели программы и ценности, которые ее поддерживают, а также определить стратегии и желаемые результаты инициативы.

Как средство визуального представления программы внутри вашей коалиции или рабочей группы и внешней аудитории, логическая модель обеспечивает общий язык и ориентир для всех, кто участвует в инициативе.

Логическая модель полезна для планирования, реализации и оценки инициативы. Это помогает заинтересованным сторонам согласовать краткосрочные и долгосрочные цели в процессе планирования, наметить мероприятия и участников, а также установить четкие критерии оценки во время работы.Когда инициатива завершается, она обеспечивает основу для оценки общей эффективности инициативы, а также действий, ресурсов и внешних факторов, которые сыграли роль в результате.

Для разработки модели вы, вероятно, будете использовать как прямую, так и обратную логику. Работая в обратном направлении, вы начинаете с желаемых результатов, а затем определяете стратегии и ресурсы, которые позволят их достичь. Комбинируя это с прямой логикой, вы выберете определенные шаги для получения желаемых эффектов.

Вероятно, вы будете периодически пересматривать модель, и это как раз одно из преимуществ использования логической модели. Поскольку он связывает программные мероприятия с их эффектом, он помогает заинтересованным сторонам сосредоточиться на достижении результатов, в то же время он остается гибким и открытым для поиска лучших средств для реализации уникальной истории изменений.

моделей зданий с использованием блоков адаптивной таблицы поиска - MATLAB и Simulink

Построение моделей с использованием блоков адаптивной таблицы поиска

Simulink ® Программное обеспечение Design Optimization ™ предоставляет блоки для системы моделирования как адаптивные справочные таблицы.Вы можете использовать адаптивную блоки справочной таблицы для создания справочных таблиц из измеренных или смоделированных данные. Вы строите модель, используя блоки адаптивной таблицы поиска, и затем смоделируйте модель, чтобы адаптировать значения справочной таблицы к изменяющимся во времени Данные ввода / вывода. Во время моделирования программное обеспечение использует входные данные для определения местоположения значения таблицы, а затем использует выходные данные для пересчета значения таблицы. Обновленные значения таблицы сохраняются в адаптивном блок таблицы поиска. Для получения дополнительной информации см. Что такое адаптивные таблицы поиска ?.

Библиотека адаптивных таблиц поиска имеет следующие блоки:

Для доступа к библиотеке адаптивных таблиц поиска:

  1. Откройте браузер библиотеки Simulink.

    В приглашении MATLAB ® введите slLibraryBrowser .

  2. Откройте Simulink Библиотека оптимизации дизайна.

    На панели Libraries разверните Simulink Оптимизация дизайна узла.

  3. В Simulink Дерево библиотеки оптимизации дизайна, щелкните Адаптивные таблицы поиска .

По умолчанию блоки Adaptive Lookup Table имеют два входа и выходы. Вы можете отображать дополнительные входы и выходы в блоке путем выбора соответствующих опций в параметрах функционального блока. чат. Чтобы узнать больше о параметрах, см. Ссылку на блок страниц.

Блок адаптивной таблицы поиска, показывающий входы и выходы

Блок 2-D Adaptive Lookup Table имеет следующие входы и выходы:

  • u и y - Входные и выходные данные моделируемой системы соответственно.

    Например, чтобы смоделировать КПД двигателя как функцию обороты двигателя и давление в коллекторе, указать и в качестве оборотов, y как давление и y как сигналы эффективности.

  • Олово - Исходная таблица данные.

  • Включить - сигнал для включения, отключить или сбросить процесс адаптации.

  • Замок - Сигнал на обновление только указанные ячейки в таблице.

  • y - Текущее значение ячейки адаптируется.

  • N - Текущий номер ячейки адаптируется.

  • Tout - Значения адаптированных данные таблицы.

Для получения дополнительной информации о том, как использовать адаптивные таблицы поиска, см. Model Engine, использующий n-D адаптивную таблицу поиска.

Типичная диаграмма Simulink с использованием адаптивной таблицы поиска блок показан на следующем рисунке.

Диаграмма Simulink с использованием адаптивной таблицы поиска

На этом рисунке блок экспериментальных данных импортирует набор экспериментальных данных. данные в Simulink через переменные рабочего пространства MATLAB. В начальная таблица указывается в параметрах маски блока. Когда запускается моделирование, исходная таблица начинает адаптироваться к новым входным данным и результирующая таблица копируется в вывод блока.

См. Также

Адаптивная таблица поиска (1D лестничная посадка) | Адаптивная таблица поиска (2D лестничная посадка) | Адаптивная таблица поиска (nD Stair-Fit)

Связанные примеры

Подробнее о

Табличные модели для сопоставления объектов - Cassandra Driver 2.5.1 документация

Инициализатор создает экземпляр модели. Передайте аргументы ключевых слов для столбцов, которые вы определили в модели.

 класс Человек (Модель):
    id = columns.UUID (primary_key = True)
    first_name = columns.Text ()
    last_name = columns.Text ()

person = Человек (first_name = 'Blake', last_name = 'Eggleston')
person.first_name # возвращает "Блейк"
person.last_name #returns 'Eggleston'
 

Атрибуты модели определяют, как модель сопоставляется с таблицами в базе данных.Это переменные класса, которые должны быть установлены при определении производных модели.

__abstract__ = Неверно

Необязательно. Указывает, что эта модель предназначена только для использования в качестве базового класса для других моделей. Вы не можете создавать таблицы для абстрактных моделей, но проверки правильности схемы во время построения класса пропускаются.

__ имя_таблицы__ = Нет

Необязательно. Задает имя таблицы CQL для этой модели. Если оставить поле пустым, имя таблицы будет именем модели с именем модуля в качестве префикса. Имена таблиц, определенные вручную, не наследуются.

__keyspace__ = Нет

Устанавливает имя ключевого пространства, используемого данной моделью.

__default_ttl__ = Нет

Необязательно TTL по умолчанию, используемый этой моделью.

Это можно изменить с помощью метода ttl () .

__polymorphic_key__ = Нет

Устарело.

см. __discriminator_value__

__discriminator_value__ = Нет

Необязательно Задает значение для столбца дискриминатора при использовании наследования модели.

Примеры использования см. В разделе «Наследование модели».

Каждая таблица может иметь собственный набор параметров конфигурации. Их можно указать на модели со следующими атрибутами:

Дополнительные сведения см. В списке поддерживаемых свойств таблицы.

__bloom_filter_fp_chance
__caching__
__комментарий__
__dclocal_read_repair_chance__
__default_time_to_live__
__gc_grace_seconds__
__index_interval__
__memtable_flush_period_in_ms__
__populate_io_cache_on_flush__
__read_repair_chance__
__replicate_on_write__

Модель в настоящее время поддерживает указание параметров уплотнения через атрибуты класса.cqlengine будет использовать ваши параметры сжатия, только если у вас установлена ​​стратегия. Когда таблица синхронизируется, она будет изменена в соответствии с параметрами сжатия, установленными для вашей таблицы. Это означает, что если вы изменяете настройки вручную, они будут снова изменены при повторной синхронизации.

Не используйте настройки сжатия cqlengine, если вы хотите управлять настройками сжатия вручную.

cqlengine поддерживает все параметры уплотнения, начиная с Cassandra 1.2.8.

Эти атрибуты, скорее всего, будут заменены одной строкой параметров в будущей версии, и поэтому они устарели.

__compaction_bucket_high__ Устарело
__compaction_bucket_low__ Устарело
__compaction_max_compaction_threshold__ Устарело
__compaction_min_compaction_threshold__ Устарело
__compaction_min_sstable_size__ Устарело
__compaction_sstable_size_in_mb__ Устарело
__compaction_tombstone_compaction_interval__ Устарело
__compaction_tombstone_threshold__ Устарело

Например:

 класс Пользователь (модель):
    __compaction__ = cqlengine.ВыровненнаяСжатиеСтратегия
    __compaction_sstable_size_in_mb__ = 64
    __compaction_tombstone_threshold__ = .2

    user_id = columns.UUID (primary_key = True)
    name = columns.Text ()
 

или для SizeTieredCompaction:

 класс TimeData (Модель):
    __compaction__ = SizeTieredCompactionStrategy
    __compaction_bucket_low__ = .3
    __compaction_bucket_high__ = 2
    __compaction_min_threshold__ = 2
    __compaction_max_threshold__ = 64
    __compaction_tombstone_compaction_interval__ = 86400
 
Таблицы

могут использовать LeveledCompactionStrategy или SizeTieredCompactionStrategy .Оба варианта доступны в модуле cqlengine верхнего уровня. Повторюсь, вам нужно будет явно указать опцию __compaction__ , чтобы cqlengine мог обрабатывать любые ваши настройки.

Базовые методы позволяют создавать, хранить и запрашивать моделируемые объекты.

создать ( ** kwargs )

Создайте экземпляр этой модели в базе данных.

Принимает значения столбца модели в качестве аргументов ключевого слова.

Возвращает экземпляр.

if_not_exists ()

Перед вставкой проверьте наличие объекта. Существование объект определяется его первичным ключом (ключами). И обратите внимание на использование этого флага повлечет за собой снижение производительности.

, если вставка не была применена, возникнет исключение LWTException.

 попробуйте:
    TestIfNotExistsModel.if_not_exists (). Create (id = id, count = 9, text = '111111111111')
кроме LWTException как e:
    # обработать случай сбоя
    напечатать e.существующий # существующий объект
 

Этот метод поддерживается в Cassandra 2.0 или новее.

экономия ()

Сохраняет объект в базе данных.

 # создать экземпляр человека
person = Человек (first_name = 'Kimberly', last_name = 'Eggleston')
# сохраняет в Кассандре
person.save ()
 
обновление ( ** значения )

Выполняет обновление экземпляра модели. Вы можете передать значения, которые будут установлены в модели. для обновления, или вы можете вызвать без значений, чтобы выполнить обновление для любого измененного поля.Если ни одно из полей модели не было изменено с момента загрузки, запрос не будет выполнен. выполненный. Проверка модели выполняется нормально.

Можно выполнить слепое обновление, то есть обновить поле без предварительного выбора объекта из базы данных. Смотрите слепые обновления

iff ( ** значения )

Проверяет правильность указанных значений в кластере Cassandra. Просто укажите столбцы и ожидаемые значения.Как и в случае с if_not_exists, это влечет за собой снижение производительности.

Если вставка не применяется, возникает исключение LWTException

 t = TestTransactionModel (text = 'некоторый текст', count = 5)
пытаться:
     t.iff (count = 5) .update ('другой текст')
кроме LWTException как e:
    # обработать сбой
 
получить ( * аргументы , ** kwargs )

Возвращает один объект на основе переданных ограничений фильтра.

Это переход к объектам модели ().: method: ~ cqlengine.queries.get .

фильтр ( * args , ** kwargs )

Возвращает набор запросов на основе параметров фильтра.

Это переход к объектам модели () .: method: ~ cqlengine.queries.filter .

все ()

Возвращает набор запросов, представляющий все сохраненные объекты

Это переход к объектам модели ().все ()

удалить ()

Удаляет объект из базы данных

партия ( объект партии )

Устанавливает пакетный объект для выполнения обновлений экземпляра и вставляет запросы с.

См. Примеры использования Пакетные запросы

тайм-аут ( тайм-аут )

Устанавливает тайм-аут для использования в save () , update () и delete () операции

метка времени ( timedelta_or_datetime )

Устанавливает метку времени для запроса

ttl ( ttl_in_sec )

Устанавливает значения ttl для запуска обновлений экземпляра и вставляет запросы с.

имя_семейства_столбцов ( include_keyspace = True )

Возвращает имя семейства столбцов, если оно было определено в противном случае он создает его из модуля и имени класса

Модели также поддерживают dict-подобный доступ:

лен ( м )

Возвращает количество столбцов, определенных в модели

.
м [col_name]

Возвращает значение столбца имя_столбца

м [col_name] = значение

Установить м [col_name] на значение

ключей ()

Возвращает список идентификаторов столбцов.

значений ()

Возвращает список значений столбца.

предметы ()

Возвращает список кортежей идентификаторов столбцов / значений.

MySQL :: Руководство по MySQL Workbench :: 9.3.1 Создание модели

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

  1. Запустите MySQL Workbench.На главном экране щелкните вид моделей на боковой панели, а затем щелкните (+) рядом с Модели. Или вы можете нажать а затем из меню (показано на рисунке, что следует).

    Рисунок 9.22 Учебное пособие по началу работы - главный экран

    Модель может содержать несколько схем. Обратите внимание, что когда вы создаете новая модель, она содержит схему mydb от дефолт. Вы можете изменить имя этой схемы по умолчанию как необходимо или вы можете удалить его.

  2. Нажмите кнопку + справа от панель инструментов "Физические схемы" для добавления нового схема. Имя схемы по умолчанию - new_schema1 , который теперь можно изменить на dvd_collection , изменив его Поле имени. Подтвердите это изменение в Панель физических схем, показанная на следующем фигура. Теперь вы готовы добавить таблицу.

    Рисунок 9.23 Учебное пособие по началу работы - Новая схема


  3. Дважды щелкните Добавить таблицу в Раздел "Физические схемы".

  4. Это автоматически загружает редактор таблиц с таблицей по умолчанию. имя таблица1 . Редактировать таблицу Поле имени для изменения имени таблицы с table1 to фильмы .

  5. Затем добавьте столбцы в свою таблицу. Дважды щелкните столбец Имя ячейки и первое поле по умолчанию moviesid , потому что (по умолчанию) MySQL Workbench добавляет id к имени таблицы для начального поле.Измените moviesid на movie_id и оставьте Тип данных - INT и также выберите PK (ПЕРВИЧНЫЙ КЛЮЧ), NN (НЕ NULL) и AI (AUTO_INCREMENT) флажки.

  6. Добавьте два дополнительных столбца, описанных в следующей таблице. На рисунке после таблицы показаны все три столбца. в фильмах стол.

    Имя столбца Тип данных Свойства столбца
    movie_title VARCHAR (45) NN
    дата выпуска ДАТА (ГГГГ-ММ-ДД) Нет

    Рисунок 9.24 Учебное пособие по началу работы - Редактирование столбцов таблицы


  7. Для визуального представления (диаграммы EER) этой схемы выберите а затем создать диаграмму EER для модель. На следующем рисунке показана новая вкладка с названием Диаграмма EER, которая отображает диаграмму представление таблицы фильмов и столбцов.

    Рисунок 9.25 Учебное пособие по началу работы - Схема EER


  8. В редакторе таблиц измените имя столбца movie_title с по title .Обратите внимание, что диаграмма EER автоматически обновляется, чтобы отразить это изменение.

    Примечание

    Чтобы открыть редактор таблиц, вернитесь к Вкладка MySQL Model и щелкните правой кнопкой мыши на фильмы таблицы или щелкните правой кнопкой мыши на фильмы на диаграмме EER и выберите вариант.

  9. Сохраните модель, выбрав, а затем из меню или щелкните значок Сохранить модель в текущий файл на панель инструментов меню.Для этого урока введите Home_Media и затем щелкните Сохранять.

Перед синхронизацией вашей новой модели с действующим сервером MySQL, подтвердите, что вы уже создали соединение MySQL. Этот учебник предполагает, что вы уже создали соединение. Если нет, см. Раздел 5.2, «Создание нового соединения с MySQL (Учебное пособие)» и используйте этот учебник для создания MySQL-соединения с именем MyFirstConnection, хотя альтернатива подключение тоже может работать.

Теперь перенесите вашу модель на действующий сервер MySQL следующим образом:

  1. Выберите, а затем в меню, чтобы открыть Переслать Мастер создания базы данных.

  2. Шаг Параметры подключения выбирает подключение MySQL и опционально устанавливает дополнительные параметры для выбранного MySQL связь. Внесите необходимые изменения в подключение и нажмите Следующий.

    Примечание

    Здесь вы можете выбрать другое соединение MySQL, но в этом руководстве используется MyFirstConnection.

  3. На шаге «Параметры» перечислены необязательные расширенные параметры (как показано на рисунок ниже). В этом руководстве вы можете игнорировать эти параметры и нажмите Далее.

    Рисунок 9.26 Учебное пособие по началу работы - параметры


  4. Выберите объект для экспорта на действующий сервер MySQL. В этом случай, есть только одна таблица ( dvd_collection.movie ). Выберите Экспортировать объекты таблиц MySQL (как рисунок, который показывает), а затем нажмите кнопку Далее.

    Рисунок 9.27 Учебное пособие по началу работы - выбор объектов


  5. На шаге «Просмотр сценария SQL» отображается сценарий SQL, который будет выполняется на живом сервере для создания вашей схемы. Обзор сценарий, чтобы убедиться, что вы понимаете операции, которые осуществляться.

    Нажмите Далее, чтобы выполнить форвард-инжиниринговый процесс.

    Рисунок 9.28 Учебное пособие по началу работы - просмотр сценария SQL


  6. Шаг «Прогресс фиксации» подтверждает, что каждая задача была выполнена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *