Американцы думают о бейсболе даже в постели. Или бейсбольная лексика в повседневной жизни
Американцы очень любят спорт. В особенности они любят тот, который придумали сами – американский футбол и бейсбол. Многие слова из этих видов спорта просочились в повседневный английский язык и уютно там устроились. К сожалению, тем, кто ни разу не играл в американский футбол или бейсбол, тяжело понять, о чем же идет речь. Давайте узнаем, какая бейсбольная лексика заняла свое уверенное место в современном английском, и что это все значит.
Говоря о спорте – это билет, который дает право бесплатно прийти на следующую игру, так как изначальное мероприятие было отменено/ перенесено из-за дождя
Значение в повседневном английском – гарантированное повторное приглашение
К примеру, подруга позвала вас на кофе, но вы уже, к сожалению, очень заняты и не можете прийти. Вы бы с радостью приняли приглашение на другой день. В такой ситуации вы можете сказать “I can’t meet with you today. But I hope you’ll give me a rain check”.
✓ Big league
Говоря о спорте – «главная лига». Команды, которые играют в бейсбол на самом высоком уровне.
В повседневной жизни может использоваться и как глагол, и как прилагательное.
Значение в качестве глагола – «игнорировать человека, чтобы выглядеть лучше на его фоне». Это словосочетание используется как глагол, так что оно может стоять в разных временах. К примеру: “I tried to talk to him. But he totally big leagued me” («Я пытался поговорить с ним. Но он меня проигнорировал»)
Значение в качестве прилагательного – престижный, один из самых лучших. “This bank is one of the big league banks” – «Этот банк – один из самых лучших банков»
✓ To touch base
Говоря о спорте – дотронуться до каждой из трех «баз» во время своей пробежки к «дому»
Значение в повседневном английском – связаться с кем-либо, быстро переговорить по телефону о чем-то.
Это словосочетание очень часто употребляется среди продавцов по телефону, когда они звонят «просто так» или «чтобы только узнать, что вы там решили». “I’m just calling to touch base and see how things are going” – «Я просто звоню проверить, как у вас дела»
✓ First base/ second base/ third base/ home base
Вы, наверное, часто слышали в американских фильмах и сериалах, что кто-то добрался до первой/ второй или даже третьей базы. Что же это значит?
Говоря о спорте – первая, вторая, третья или четвертая база. Сама суть игры в бейсбол – это борьба за так называемые четыре «базы»: первая, вторая, третья и база «дом». Только на этих базах бегущий находится в безопасности и его нельзя останавливать
В повседневном английском каждая «база» символизирует то, как далеко молодому человеку посчастливилось зайти в любовных ухаживаниях. First base – романтичные поцелуи, second base – горячие объятья и страстные лобзания, third base – молодому человеку уже почти повезло и можно начинать хвастаться, fourth base (или home base) – финальный этап любовной игры. Home base еще иногда описывают как “going all the way” (“идти до конца”), ведь игроку повезло, он оббежал все поле и достиг желаемого (победы в бейсболе, конечно).
К примеру, молодой человек может жаловаться своему приятелю так “It’s been a month and we’re still only on first base!» – «Прошел уже целый месяц, а мы все еще на первой базе (мы все еще только целуемся)».
В спорте – бросок, когда мяч летит по дуге в противоположном направлении по сравнению с обычным броском (при подаче с левой руки – влево, а с правой – вправо)
Значение в повседневном английском – чудак, сумасброд, эксцентричный человек
He looks like a nice guy but he is such a screwball – Кажется, что он нормальный парень, но на самом деле он чудак.
В спорте – левая сторона бейсбольного поля
Значение в повседневном английском – странный, необычный
К сожалению, не совсем понятно, чем так провинилась левая сторона бейсбольного поля. В повседневном английском это словосочетание употребляют в значении “очень странный”, а не “мило чудаковатый”.
“Where do you get this stuff from? It is straight out of left field!” – «От куда ты это взял? Это же супер странно!»
«База», что ты такое? Мем возродился в рунете и сломал людям головы, но ответ есть
Что значит слово «база», или based, в мемах? Пользователи рунета попытались выяснить смысл сленгового выражения, и в этом им помогли шаблоны с котёнком и объяснения, связанные с ультраправой идеологией. Если вы не поняли, что делать с подобным миксом, то мы идём к вам.
В конце мая 2021 года в русскоязычном твиттере стало всё чаще употребляться слово «база», но не в традиционном его понимании. Так, в соцсети стал особенно популярен мем с выражением, посвящённый современному сленгу. В шаблоне хозяева задавали коту вопрос о том, зачем он сделал нечто постыдное, на что пушистый отвечал, используя как раз-таки «базу».
Обсуждениям понятия поспособствовала и статья портала AdMe о якобы популярном у молодёжи сленге — в соцсети разошёлся кадр из публикации издания.
Комментаторы, не знакомые с понятием «база» в его непривычном употреблении, задались вопросом о его значении. Обитатели платформы признались, что, даже будучи юными, не успевают уследить за трендами.
Я не понимаю. Объясните, что за «база», какая «база»? Чувство, что мне не 16, а 80 лет.
Что за новое слово «база»? Что это. В моё время «база» была литровым слаймом, из которого делали другие виды слаймов.
«Просвещённые» пользователи социальной сети не остались в стороне и объяснили нюансы использования сленга. По мнению комментаторов, слово «база», или based (дословный перевод — «размещающийся», «базирующийся»), связано с расистской и ксенофобными идеологиями. При этом данное обозначение, утверждали обитатели твиттера, обычно употребляется в положительном ключе.
Если тусить в правом движе, то нижняя пикча обретает смысл. «База» произошло от английского based и употребляется, как положительный комментарий, одобрение чего-либо в контексте правой идеологии. […]
Ну based, или адаптированный на русский вариант «база» — это одобрительное слово из сленга альт-райтов (движение «альтернативных» или «новых» правых. — Прим. Medialeaks). Например, ненавидеть темнокожих и запрещать аборты — «база».
Но чаще всего сленг используется больше как юмор и самоирония, чем как что-то серьёзное. По большей части внутри правых все клеймят кого-то «базой» и «приказом Израиля» в рамках какой-то шутки, объясняя существование правильных правых и поверхностных и неправильных идей.
Как пишет Know Your Meme, «база» происходит от названия альтер-эго рэпера Lil B — Based God — и используется для обозначения положительного мнения, которое противоречит социально-политическим тенденциям и может быть оскорбительным для широкого круга людей.
Слово, используемое, когда вы с чем-то согласны или когда вы хотите похвалить кого-то за то, что он — тот, кто он есть. То есть смелый и уникальный человек или тот, кто не заботится о мнении других, — так описывает «базу» онлайн-словарь Urban Dictionary.
Словарь также отмечает, что сленг применяется в дискуссиях среди консерваторов и правых политических партий. Но без контекста сложно понять, используется ли «база» иронично или автор настроен серьёзно.

Сэр, вы не «база» и не «прозревший». Вы стоите посреди супермаркета Walmart и устраиваете сцену. Я должен попросить вас уйти.
Пока одни пользователи твиттера ломали головы над «базой», другие решили пойти в мемы с бумажной хрюшей-конструктором. Шаблоны настолько нелепые, что о них можно сказать только «Да». Но, увидев животное один раз, вы заходите его собрать.
А тренд с оценкой дагестанского блогера Хасбика украл сердечки людей в Сети. В рамках флешмоба родительницы оценивали парня, а виноват в этом «большой русский кот» Шлёпа.
Официальная таблица КБМ 2021 года. Узнай свой класс коэффициента бонус малуса
Обращаем Ваше внимание при первом посещении страховой, собственник получает 3 класс (КБМ 1), если он делает страхование автомобиля впервые.
Класс водителя который был в предыдущем полисе ОСАГО
КБМ водителя (рассчитывается по формуле)
Класс, который учитывается при заключении нового полиса.
Чтобы понять какая у Вас скидка, просто найдите в таблице свой класс вождения и кол-во выплат. Вы сразу увидите свою скидку по ОСАГО.
Если Вам не хочется разбираться в таблице, просто проверьте свой КБМ в официальной базе РСА бесплатно
Инструкция, по таблице КБМ 2021 года
Подробная инструкция по таблице, как проверить свой КБМ и понять верно ли он рассчитан. Как можно восстановить коэффициент бонус малус до правильного значения в официальной базе РСА.
Если у Вас возникнут вопросы по проверке КБМ и его восстановлению напишите нам на электронную почту info@roskbm.ru
Как происходит восстановление КБМ
Как мы подаем заявку в официальную базу РСА для восстановления КБМ водителя. Средний срок обработки заявки.
Для того что бы узнать свой КБМ и размер скидки по ОСАГО, нужно ввести данные: ФИО, Дату рождения, серию и номер ВУ. Нажимаете на кнопку «Проверить КБМ»
Мы направляем официальное онлайн заявление на восстановление коэффициента бонуса малуса в РСА и ОСАГО. Если Вы меняли ВУ и не указали старые сведения о ВУ, мы направляем заявку на поиск серии и номера предыдущего ВУ.
Обработка заявления занимает в среднем от 12 до 24 часов.
Максимальный срок обработки занимает 7 рабочих дней. Если КБМ не будет восстановлен мы гарантируем возврат денежных средств согласно закону защите потребителей, в течении 3 рабочих дней.
Как сэкономить на ОСАГО до 50%
Согласно ФЗ №40 от 05.04.2002 г. при оформлении полиса ОСАГО предосмотрена скидка по расчету коэфициента Бонус-малус. Чем меньше значение КБМ, тем больше скидка.
Если у вас КБМ=1, автомобиль Киа Рио 128 л.с., то полис ОСАГО стоит 8 734 руб. Но, вы уже долгое время не были в ДТП, то ваш КБМ станет меньше, до 0.5. Тогда для вас ОСАГО будет стоить со скидкой 50%, а именно 8 734 / 2 = 4 367 руб.
Для получения скидки на ОСАГО, нужно проверить свой КБМ и далее подать заявку на восстановления КБМ.
Вторая нормальная форма (2NF) базы данных
Всем привет! Сегодня мы с Вами подробно рассмотрим вторую нормальную форму (2NF) базы данных, в частности Вы узнаете, какие требования предъявляются к таблицам, чтобы база данных находилась во второй нормальной форме, и для наглядности мы как всегда рассмотрим несколько примеров.
Перед тем как переходить к процессу приведения таблиц базы данных до второй нормальной формы, необходимо чтобы эти таблицы уже находились в первой нормальной форме, подробно процесс приведения таблиц базы данных до первой нормальной формы, а также все требования, предъявляемые к первой нормальной форме, мы рассматривали в предыдущей статье – первая нормальная форма (1NF).
После того как таблицы базы данных находятся в первой нормальной форме, мы можем начинать приводить базу данных ко второй нормальной форме и рассматривать соответствующие требования.
Требования второй нормальной формы (2NF)
Чтобы база данных находилась во второй нормальной форме (2NF), необходимо чтобы ее таблицы удовлетворяли следующим требованиям:
Ключ – это столбец или набор столбцов, по которым гарантировано можно отличить строки друг от друга, т.е. ключ идентифицирует каждую строку таблицы. По ключу мы можем обратиться к конкретной строке данных в таблице.
Если ключ составной, т.е. состоит из нескольких столбцов, то все остальные неключевые столбцы должны зависеть от всего ключа, т.е. от всех столбцов в этом ключе. Если какой-то атрибут (столбец) зависит только от одного столбца в ключе, значит, база данных не находится во второй нормальной форме.
Иными словами, в таблице не должно быть данных, которые можно получить, зная только половину ключа, т.е. только один столбец из составного ключа.
Главное правило второй нормальной формы (2NF) звучит следующим образом
Таблица должна иметь правильный ключ, по которому можно идентифицировать каждую строку.
Пример приведения таблицы ко второй нормальной форме
Представим, что нам нужно хранить список сотрудников организации, и для этого мы создали следующую таблицу.
Таблица сотрудников в первой нормальной форме.
| ФИО | Должность | Подразделение | Описание подразделения |
| Иванов И.И. | Программист | Отдел разработки | Разработка и сопровождение приложений и сайтов |
| Сергеев С.С. | Бухгалтер | Бухгалтерия | Ведение бухгалтерского и налогового учета финансово-хозяйственной деятельности |
| John Smith | Продавец | Отдел реализации | Организация сбыта продукции |
Мы видим, что она удовлетворяет условиям первой нормальной формы, т.е. в ней нет дублирующих строк и все значения атомарны.
Теперь мы можем начать процесс нормализации этой таблицы до второй нормальной формы.
Что для этого нам нужно сделать? Нам нужно внедрить первичный ключ.
Поработав немного с предметной областью, мы выясняем, что в этой организации каждому сотруднику присваивается уникальный табельный номер, который никогда не будет изменен.
Поэтому очевидно, что для таблицы, которая будет хранить список сотрудников, первичным ключом может выступать табельный номер, зная который мы можем четко идентифицировать каждого сотрудника, т.е. каждую строку нашей таблицы. Если бы такого табельного номера у нас не было или в рамках организации он мог повторяться (например, сотрудник уволился, и спустя время его номер присвоили новому сотруднику), то для первичного ключа мы могли бы создать искусственный ключ с целочисленным типом данных, который автоматически увеличивался бы в случае добавления новых записей в таблицу. Тем самым мы бы точно также четко идентифицировали каждую строку в таблице.
Таким образом, чтобы привести эту таблицу ко второй нормальной форме, мы должны добавить в нее еще один атрибут, т.е. столбец с табельным номером.
Таблица сотрудников во второй нормальной форме с простым первичным ключом.
| Табельный номер | ФИО | Должность | Подразделение | Описание подразделения |
| 1 | Иванов И.И. | Программист | Отдел разработки | Разработка и сопровождение приложений и сайтов |
| 2 | Сергеев С.С. | Бухгалтер | Бухгалтерия | Ведение бухгалтерского и налогового учета финансово-хозяйственной деятельности |
| 3 | John Smith | Продавец | Отдел реализации | Организация сбыта продукции |
В результате, так как наш первичный ключ является простым, а не составным, наша таблица автоматически переходит во вторую нормальную форму.
Иными словами, если первичный ключ простой (не составной, т.е. состоящий из одного столбца), второе требование, которое предъявляется к таблицам для перехода во вторую нормальную форму, выполнять не требуется, так как оно относится только к таблицам, у которых первичный ключ составной.
Пример приведения таблицы ко второй нормальной форме (первичный ключ составной)
А теперь давайте рассмотрим другую ситуацию, в которой первичный ключ у нас будет составным.
Представим, что наша организация выполняет несколько проектов, в которых может быть задействовано несколько участников, и нам необходимо хранить информацию об этих проектах. В частности мы хотим знать, кто участвует в каждом из проектов, продолжительность этого проекта, ну и возможно какие-то другие сведения. При этом мы понимаем, что отдельно взятый сотрудник может участвовать в нескольких проектах.
Для хранения таких данных мы создали следующую таблицу.
Таблица проектов организации в первой нормальной форме.
| Название проекта | Участник | Должность | Срок проекта (мес.) |
| Внедрение приложения | Иванов И.И. | Программист | 8 |
| Внедрение приложения | Сергеев С.С. | Бухгалтер | 8 |
| Внедрение приложения | John Smith | Менеджер | 8 |
| Открытие нового магазина | Сергеев С.С. | Бухгалтер | 12 |
| Открытие нового магазина | John Smith | Менеджер | 12 |
Как видим, она в первой нормальной форме, значит, мы можем пытаться приводить ее ко второй нормальной форме.
Как Вы помните, чтобы привести таблицу ко второй нормальной форме, необходимо определить для нее первичный ключ.
Посмотрев на эту таблицу, мы понимаем, что четко идентифицировать каждую строку мы можем только с помощью комбинации столбцов, например, «Название проекта» + «Участник», иными словами, зная «Название проекта» и «Участника», мы можем четко определить конкретную запись в таблице, т.е. каждое сочетание значений этих столбцов является уникальным.
Таким образом, мы определили первичный ключ и он у нас составной, т.е. состоящий их двух столбцов.
Таблица проектов организации. Внедрен составной первичный ключ.
| Название проекта | Участник | Должность | Срок проекта (мес.) |
| Внедрение приложения | Иванов И.И. | Программист | 8 |
| Внедрение приложения | Сергеев С.С. | Бухгалтер | 8 |
| Внедрение приложения | John Smith | Менеджер | 8 |
| Открытие нового магазина | Сергеев С.С. | Бухгалтер | 12 |
| Открытие нового магазина | John Smith | Менеджер | 12 |
Так как первичный ключ составной, нам необходимо проверить еще и второе требование, которое гласит, что «Все неключевые столбцы таблицы должны зависеть от полного ключа».
Другими словами, остальные столбцы, которые не входят в первичный ключ, должны зависеть от всего первичного ключа, т.е. от всех столбцов, а не от какого-то одного.
Чтобы это проверить, мы можем задать себе несколько вопросов.
Можем ли мы определить «Должность», зная только название проекта? Нет. Для этого нам необходимо знать и участника. Значит, пока все хорошо, по этой части ключа мы не можем четко определить значение неключевого столбца. Идем дальше и проверяем другую часть ключа.
Можем ли мы определить «Должность» зная только участника? Да, можем. Значит наш первичный ключ плохой, и требование второй нормальной формы не выполняется.
Что делать в этом случае?
В этом случае мы будем выполнять действие, которое выполняется, наверное, в 99% случаев на протяжении всего процесса нормализации базы данных – это декомпозиция.
Декомпозиция – это процесс разбиения одного отношения (таблицы) на несколько.
Чтобы декомпозировать нашу таблицу и привести базу данных к нормализованной форме, мы должны создать следующие таблицы.
| Идентификатор проекта | Название проекта | Срок проекта (мес.) |
| 1 | Внедрение приложения | 8 |
| 2 | Открытие нового магазина | 12 |
| Идентификатор участника | Участник | Должность |
| 1 | Иванов И.И. | Программист |
| 2 | Сергеев С.С. | Бухгалтер |
| 3 | John Smith | Менеджер |
Связь проектов и участников этих проектов.
| Идентификатор проекта | Идентификатор участника |
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 2 |
| 2 | 3 |
Заметка! Если Вас интересует язык SQL, то рекомендую почитать книгу «SQL код» – это самоучитель по языку SQL для начинающих программистов. В ней очень подробно рассмотрены основные конструкции языка.
Мы создали 3 таблицы:
После того как мы привели таблицы базы данных ко второй нормальной форме, мы можем переходить к приведению таблиц до третьей нормальной формы (3NF). Описание, требования и пример приведения таблиц до третьей нормальной формы мы рассмотрим в следующем материале.
На сегодня это все, надеюсь, материал был Вам полезен, пока!
Что такое База Данных (БД)
База данных — это место для хранения данных. Используется в том числе в клиент-серверной архитектуре. Это все интернет-магазины, сайты кинотеатров или авиабилетов. Вы делаете заказ, а система сохраняет ваши данные в базе.
В этот статье я на простых примерах расскажу, что такое база данных и как она выглядит. А потом поясню некоторые термины из конкретной (реляционной) базы. Те, с которыми вы почти наверняка столкнетесь на работе.
Статья рассчитана на начинающих тестировщиков или аналитиков, то есть тех, кто будет работать с базой, но не на супер-глубоком уровне. Она для тех, кто только входит в мир ИТ, и многого не знает. Она объясняет, что это за звено в клиент-серверной архитектуре такое, и зачем оно нужно.
Содержание
Что такое база данных
База данных — хранилище, куда приложение складывает свои данные. Если приложение небольшое, отдельная база не нужна. Но потом это становится удобнее и выгоднее с точки зрения памяти.
Катя решила открыть свой магазинчик. Она нашла хорошую марку обуви, которую «днем с огнем» не сыскать в ее городе. Заказала оптовую партию и стала потихоньку распродавать через знакомых. Пришлось освободить половину шкафа под коробки, но вроде всё поместилось.
Обувь хорошая, в розницу заказывать в других местах невыгодно — и вот уже у Кати есть постоянные клиенты, которые приводят друзей. Как только какая-то пара заканчивается, Катя делает новый заказ.
Но покупатели хотят новинок, разных размеров. Да и самих покупателей становится все больше и больше. В шкаф коробки уже не влезают!
Теперь, если покупатель просит определенную пару, Катьке сложно её найти. Пока коробок было мало, она помнила наизусть, где что лежит. А теперь уже нет, да и все попытки организовать систему провалились. Места мало, да и детки любят с коробками поиграть.
Тогда Катька решила арендовать складское помещение. И вот теперь красота! Не надо теснить своих домашних, дома чисто и свободно! И на складе место есть, появилась система — тут босоножки, тут сапоги.
Чем больше объемы производства, тем больше нужно места. Если в начале пути склад не нужен, всё поместится дома, то потом это будет оправданно.
То же самое и в приложениях. Если приложение маленькое, то все данные можно хранить в памяти. Но учтите, что это память на вашем компьютере, вашем телефоне. И чем больше данных туда пихать, тем медленнее будет работать программа.
Место в памяти ограничено. Поэтому когда данных много, их нужно куда-то сложить. Можно писать в файлики, а можно сохранять информацию в базу данных (сокращенно БД). Выбор за вами. А точнее, за вашим разработчиком.
Как она выглядит
Да примерно как excel-табличка! Есть колонки с заголовками, и информация внутри:
Это называется реляционная база данных — набор таблиц, хранящихся в одном пространстве.
Что за пространство? Ну вот представьте, что вы храните все данные в excel. Можно запихать всю-всю-всю информацию в одну огро-о-о-о-мную таблицу, но это неудобно. Обычно табличек несколько: тут информация по клиентам, там по заказам, а тут по адресам. Эти таблицы удобно хранить в одном месте, поэтому кладем их в отдельную папочку:
Так вот пространство внутри базы данных — это та же самая папочка в винде. Место, куда мы сложили свои таблички, чтобы они все были в одном месте.
Пример базы Oracle
Цель та же — выделить отдельное место, чтобы у вас не была одна большая свалка:
заходишь в папку в винде → видишь файлики только из этой папки
заходишь в пространство → видишь только те таблицы, которые в нем есть
Хранение данных в виде табличек — это не единственно возможный вариант. Вот вам для примера запись из таблицы в системе Users. Там используется MongoDB база данных, она не реляционная. Поэтому вместо таблички «словно в excel» каждая запись хранится в виде объекта, вот так:
А еще есть файловые базы — когда у вас вся информация хранится в файликах. Да-да, простых текстовых файликах!
Почитать о разных видах баз данных можно в википедии. Я не буду в этой статье углубляться в эту тему, потому что моя задача — объяснить «что это вообще такое» для ребят, которые базу в глаза не видели. А на работе они скорее всего столкнутся именно с реляционной базой данных, поэтому о ней и речь.
Как получить информацию из базы
Нужно записать свой запрос в понятном для базы виде — на SQL. SQL (Structured Query Language) — язык общения с базой данных. В нем есть ключевые слова, которые помогут вам сделать выборку:
select — выбери мне такие-то колонки.
from — из такой-то таблицы базы.
where — такую-то информацию.
Например, я хочу получить информацию по клиенту «Назина Ольга». Составляю в уме ТЗ:
В дословном переводе:
Комментарии в Oracle/PLSQL — мой перевод остается работающим запросом, потому что я убрала «лишнее» в комментарии
Если бы у меня была не база данных, а простые excel-файлики, то же действие было бы:
Открыть файл с нужными данными (clients)
Поставить фильтр на колонку «ФИО» — «Назина Ольга».
То есть нам в любом случае надо знать название таблицы, где лежат данные, и название колонки, по которой фильтруем. Это не что-то страшное, что есть только в базе данных. То же самое есть в простом экселе.
Бывают запросы и сложнее — когда надо достать данные не из одной таблицы, а из разных. В базе это будет выглядеть даже лучше, чем в эксельке. В экселе вам нужно открыть 1-2-3 таблицы и смотреть в каждую. Неудобно.
А в базе данных вы внутри запроса SQL указываете, какие колонки из каких таблиц вам нужны. И результат запроса их отрисовывает. Скажем, мы хотим увидеть заказ, который сделал клиент, ФИО клиента, и его номер телефона. И всё это в разных таблицах! А мы написали запрос и увидели то, что нам надо:
id_order
order (таблица order)
fio (таблица client)
phone (таблица contacts)
И пусть в таблице клиентов у нас будет 30 колонок, а в таблице заказов 50, в результате выборки мы видим ровно 4 запрошенные. Удобно, ничего лишнего!
Конечно, написать такой запрос будет немного сложнее обычного селекта. Это уже select join, почитать о нем можно тут. И я рекомендую вам его изучить, потому что он входит в «базовое знание sql», которое требуется на собеседованиях.
Результаты выборки можно группировать, сортировать — это следующий уровень сложности. См раздел «статьи и книги по теме» для получения большей информации.
Как связать данные между собой
Вот например, у нас есть интернет-магазин по доставке пиццы. Так выглядит его база данных:
В таблице «client» лежат данные по клиентам: ФИО, пол, дата рождения и т.д.
last_name
first_name
birthdate
В таблице «orders» лежат данные по заказам. Что заказали (пиццу, суши, роллы), когда, насколько довольны доставкой?
order
addr
date
time
Роллы «Филадельфия» и «Канада»
Пицца 35 см, роллы комбо 1
Пицца с сосиками по краям
Комбо набор 3, обед №4
Но как понять, где чей был заказ? Сколько раз заказывал Вася, а сколько Алина?
Тут есть несколько вариантов:
1. Запихать все данные в одну таблицу: тут и заказы, и информация по клиентам. В целом удобно, открыл табличку и сразу видишь — ага, это Васин заказ, а это Машин.
Таблица все растет и растет, в итоге получается просто огромной! А когда данных много, легкость чтения пропадает, придется листать до нужной колонки.
Поиск будет работать медленнее. Чем меньше информации в таблице, тем быстрее поиск. Когда у нас много строк, количество колонок становится существенным.
Много дублей — один человек может сделать хоть сотню заказов. И вся информация по нему будет продублирована сто раз. Неоптимальненько!
Чтобы избежать дублей, таблицы принято разделять:
Новые объекты отдельно
Но надо при этом их как-то связать между собой, мы ведь всё еще хотим знать, чей конкретно был заказ. Для связи таблиц используется foreign key, внешний ключ.
Нам надо у заказа сделать отметку о клиенте. Значит, таблица «orders» будет ссылаться на таблицу «clients». Ключ можно поставить на любую колонку таблицы (в некоторых базах колонка должна быть уникальной, сначала её нужно такой указать). Какую бы выбрать?
Можно ссылаться на имя. А что, миленько, в таблице заказов будем сразу имя видеть! Но минуточку. А если у нас два клиента Ивана? Или три Маши? Десять Саш. Ну вы поняли =) И как тогда разобраться, где какой клиент? Не подходит!
Можно вешать foreign key на несколько колонок. Например, на фамилию + имя, или фамилию + имя + отчество. Но ведь и ФИО бывают неуникальные! Что тогда? Можно добавить в связку дату рождения. Тогда шанс ошибиться будет минимален, хотя и такие ребята существуют. И чем больше клиентов у вас будет, тем больше шанс встретить дубликат.
А можно не усложнять! Вместо того, чтобы делать внешний ключ на 10 колонок, лучше создать в таблице клиентов primary key, первичный ключ. Первичный ключ отвечает за то, чтобы каждое значение в поле было уникальным, никаких дублей. При попытке добавить в таблицу запись с неуникальным первичным ключом получаешь ошибку:
Здесь ключ — «id_order»
Вот на него и нужно ссылаться! Обычно таким ключом является ID, идентификатор записи. Его можно сделать автоинкрементальным — это значит, что он генерируется сам по алгоритму «прошлое значение + 1».
Например, у нас гостиница для котиков. Это когда хозяева едут в отпуск, а котика оставить не с кем — оставляем в гостинице!








