- Способы отношения с списком
- Love-лист
- Еженедельные вопросы для обсуждения
- 1. Что тебя порадовало в наших отношениях на этой неделе?
- 2. Что новое ты узнал о себе? Обо мне?
- 3. Что тебя сейчас беспокоит?
- 4. Продолжи фразу «Я хочу…».
- 5. Что нам нужно сделать вместе на следующей неделе?
- Пишите письма
- День, когда мы впервые увидели друг друга
- Письмо тебе через год
- Письмо с извинениями
- Письмо «Если тебе станет грустно»
- Списки любимых мест
- Список любимых мест вашего города
- Список соблазнительных мест, куда вы хотели бы сходить вдвоем
- Связи между таблицами базы данных
- 1. Введение
- 1.1. Для кого эта статья?
- 1.2. Как вы можете применить эти знания?
- 2. Благодарности
- 3.1. Как организовываются связи?
- 3.2. Виды связей
- 4. Многие ко многим
- 4.1. Как построить такие таблицы?
- 4.2. Реализация
- 4.3. Вывод
- 5. Один ко многим
- 5.1. Как построить такие таблицы?
- 5.2. Почему мы не делаем тут таблицу-посредника?
- 5.3. Реализация
- 6. Один к одному
- 6.1. Вывод
- 6.2. Реализация
- 7. Обязательные и необязательные связи
- 7.1. Один ко многим
- 7.2. Один к одному
- 7.3. Многие ко многим
- 8. Как читать диаграммы?
- 9. Итоги
- 10. Задачи
Способы отношения с списком
Неважно, сколько вы вместе — один месяц или двадцать лет, — всегда можно стать еще ближе и создать совместные воспоминания.
Лариса Парфентьева — автор бестселлера «100 способов изменить жизнь», специалист по системному семейному консультированию (Mental Research Institute), спикерTEDx. В новом блокноте «Год для двоих» она делится идеями, которые помогут укрепить ваши отношения.
Love-лист
Составьте свой список дел для укрепления отношений, вот несколько идей для вдохновения. Это 25 вещей, которые нужно сделать вместе хотя бы раз в жизни.
— Провести целый день в кровати
— Приготовить вдвоем новое блюдо
— Придумать собственную традицию
— Целоваться под дождем
— Провести ночь в отеле в своем городе
— Составить конституцию пары
— Сделать совместную фотосессию
— Слать друг другу «горячие» сообщения
— Сходить в поход
— Полетать на воздушном шаре
— Почитать друг другу книгу
— Выучить песню и спеть ее в караоке
— Сходить в магазин для взрослых
— Принять пенную ванну
— Сходить на свидание ночью
— Создать свой плей-лист
— Обсудить финансовые вопросы
— Сходить на парный массаж
— Воссоздать первое свидание
— Отправиться в музей
— Уехать в спонтанное путешествие
— Встретить закат и рассвет
— Написать друг другу романтическое письмо
— Искупаться ночью голышом в море
— Сходить на творческий мастер-класс
Источник
Еженедельные вопросы для обсуждения
Чтобы еще лучше понимать друг друга, найдите время на честный разговор о том, что вас радует и беспокоит в ваших отношениях, чего вы хотите или не хотите в них.
1. Что тебя порадовало в наших отношениях на этой неделе?
Расскажите друг другу, как отношения и ваша вторая половинка помогли вам чувствовать себя счастливым за последние семь дней.
2. Что новое ты узнал о себе? Обо мне?
С любимым человеком можно открывать что-то новое в себе и в нем постоянно. Неважно, сколько вы вместе: один год или двадцать лет.
3. Что тебя сейчас беспокоит?
Поделитесь причинами своего беспокойства: что вас волнует и как вас можно поддержать.
4. Продолжи фразу «Я хочу…».
Пишите все, что приходит в голову. Любые желания и порывы, которые в вас прямо сейчас: от «я хочу сырников» или «хочу лета» до «хочу мирового господства немедленно!».
5. Что нам нужно сделать вместе на следующей неделе?
Запланируйте очередной пункт из Love-листа для выполнения.
Источник
Пишите письма
Каждый месяц пишите друг другу одно письмо, чтобы усилить доверие, стать ближе и создать совместную реальность.
День, когда мы впервые увидели друг друга
Вы помните день, когда познакомились? Могли бы вы тогда подумать, что у вас будут романтические отношения? Вспомните тот день в деталях. Как вы были одеты? Что говорили? Как провели время? Над чем смеялись? О чем подумали, когда впервые увидели этого человека? Воссоздайте тот день во всех красках!
Письмо тебе через год
Напишите письмо своей второй половинке о том, как будет выглядеть ваша жизнь через год. Поделитесь персональными идеями для вашего совместного будущего. Как вы выглядите, где живете и о чем мечтаете? О чем разговариваете, как проводите время? Чего вы хотите через год?
Источник
Письмо с извинениями
Слова, которые нам тяжелее всего произнести в отношениях, это «Прости, я был неправ/а». Есть ли что-то, за что вам хочется извиниться? Была ли ситуация, которая не дает вам покоя до сих пор? Может, вы считаете, что где-то повели себя некрасиво, в сердцах сказали что-то лишнее или не выполнили свое обещание? Это письмо, в котором вы можете извиниться за свое действие или бездействие.
Письмо «Если тебе станет грустно»
Напишите все что угодно, что может подбодрить вашего партнера. Составьте список того, почему он молодец, в каких ситуациях вы испытывали гордость за него, какие качества особенно цените в нем. Вспомните смешной случай или просто напишите забавный комплимент. Это письмо он всегда сможет открыть и прочитать в моменты упадка сил и духа.
Чек-лист, который поможет организовать совместный досуг→
Списки любимых мест
Иногда голова взрывается, когда думаешь о том, в какой кофейне позавтракать, где провести необычный ужин или свидание. Чтобы облегчить задачу «а куда мы сегодня пойдем?», вы можете составить два списка.
Список любимых мест вашего города
Это могут быть рестораны, кафе, кинотеатры, парки. Можете добавить самые теплые воспоминания об этом знаковом для вас месте.
Список соблазнительных мест, куда вы хотели бы сходить вдвоем
А может, вы были где-то по отдельности и хотите отвести туда свою вторую половинку: кинотеатр документальных фильмов в Москве, стритфуд в Бангкоке, ресторан русской кухни в Суздале, парк развлечений в Барселоне, крошечное уютное кафе в Краснодаре, набережная в Казани, Арка искусств в Уфе, душевная парадная в Питере.
По материалам книги «Год для двоих».
Источник
Связи между таблицами базы данных
1. Введение
Связи — это довольна важная тема, которую следует понимать при проектировании баз данных. По своему личному опыту скажу, что осознав связи, мне намного легче далось понимание нормализации базы данных.
1.1. Для кого эта статья?
Эта статья будет полезна тем, кто хочет разобраться со связями между таблицами базы данных. В ней я постарался рассказать на понятном языке, что это такое. Для лучшего понимания темы, я чередую теоретический материал с практическими примерами, представленными в виде диаграммы и запроса, создающего нужные нам таблицы. Я использую СУБД Microsoft SQL Server и запросы пишу на T-SQL. Написанный мною код должен работать и на других СУБД, поскольку запросы являются универсальными и не используют специфических конструкций языка T-SQL.
1.2. Как вы можете применить эти знания?
2. Благодарности
Учтены были советы и критика авторов jobgemws, unfilled, firnind, Hamaruba.
Спасибо!
3.1. Как организовываются связи?
Связи создаются с помощью внешних ключей (foreign key).
Внешний ключ — это атрибут или набор атрибутов, которые ссылаются на primary key или unique другой таблицы. Другими словами, это что-то вроде указателя на строку другой таблицы.
3.2. Виды связей
Связи делятся на:
- Многие ко многим.
- Один ко многим.
- с обязательной связью;
- с необязательной связью;
- Один к одному.
- с обязательной связью;
- с необязательной связью;
Рассмотрим подробно каждый из них.
4. Многие ко многим
Представим, что нам нужно написать БД, которая будет хранить работником IT-компании. При этом существует некий стандартный набор должностей. При этом:
- Работник может иметь одну и более должностей. Например, некий работник может быть и админом, и программистом.
- Должность может «владеть» одним и более работников. Например, админами является определенный набор работников. Другими словами, к админам относятся некие работники.
Работников представляет таблица «Employee» (id, имя, возраст), должности представляет таблица «Position» (id и название должности). Как видно, обе эти таблицы связаны между собой по правилу многие ко многим: каждому работнику соответствует одна и больше должностей (многие должности), каждой должности соответствует один и больше работников (многие работники).
4.1. Как построить такие таблицы?
EmployeeId | PositionId |
---|---|
1 | 1 |
1 | 2 |
2 | 3 |
3 | 3 |
Слева указаны работники (их id), справа — должности (их id). Работники и должности на этой таблице указываются с помощью id’шников.
На эту таблицу можно посмотреть с двух сторон:
- Таким образом, мы говорим, что работник с id 1 находится на должность с id 1. При этом обратите внимание на то, что в этой таблице работник с id 1 имеет две должности: 1 и 2. Т.е., каждому работнику слева соответствует некая должность справа.
- Мы также можем сказать, что должности с id 3 принадлежат пользователи с id 2 и 3. Т.е., каждой роли справа принадлежит некий работник слева.
4.2. Реализация
С помощью ограничения foreign key мы можем ссылаться на primary key или unique другой таблицы. В этом примере мы
- ссылаемся атрибутом PositionId таблицы EmployeesPositions на атрибут PositionId таблицы Position;
- атрибутом EmployeeId таблицы EmployeesPositions — на атрибут EmployeeId таблицы Employee;
4.3. Вывод
Для реализации связи многие ко многим нам нужен некий посредник между двумя рассматриваемыми таблицами. Он должен хранить два внешних ключа, первый из которых ссылается на первую таблицу, а второй — на вторую.
5. Один ко многим
Эта самая распространенная связь между базами данных. Мы рассматриваем ее после связи многие ко многим для сравнения.
Предположим, нам нужно реализовать некую БД, которая ведет учет данных о пользователях. У пользователя есть: имя, фамилия, возраст, номера телефонов. При этом у каждого пользователя может быть от одного и больше номеров телефонов (многие номера телефонов).
В этом случае мы наблюдаем следующее: пользователь может иметь многие номера телефонов, но нельзя сказать, что номеру телефона принадлежит определенный пользователь.
Другими словами, телефон принадлежит только одному пользователю. А пользователю могут принадлежать 1 и более телефонов (многие).
Как мы видим, это отношение один ко многим.
5.1. Как построить такие таблицы?
PhoneId | PersonId | PhoneNumber |
---|---|---|
1 | 5 | 11 091-10 |
2 | 5 | 19 124-66 |
3 | 17 | 21 972-02 |
Данная таблица представляет три номера телефона. При этом номера телефона с id 1 и 2 принадлежат пользователю с id 5. А вот номер с id 3 принадлежит пользователю с id 17.
Заметка. Если бы у таблицы «Phones» было бы больше атрибутов, то мы смело бы их добавляли в эту таблицу.
5.2. Почему мы не делаем тут таблицу-посредника?
Таблица-посредник нужна только в том случае, если мы имеем связь многие-ко-многим. По той простой причине, что мы можем рассматривать ее с двух сторон. Как, например, таблицу EmployeesPositions ранее:
- Каждому работнику принадлежат несколько должностей (многие).
- Каждой должности принадлежит несколько работников (многие).
Но в нашем случае мы не можем сказать, что каждому телефону принадлежат несколько пользователей — номеру телефона может принадлежать только один пользователь.
Теперь прочтите еще раз заметку в конце пункта 5.1. — она станет для вас более понятной.
5.3. Реализация
6. Один к одному
Представим, что на работе вам дали задание написать БД для учета всех работников для HR. Начальник уверял, что компании нужно знать только об имени, возрасте и телефоне работника. Вы разработали такую БД и поместили в нее всю 1000 работников компании. И тут начальник говорит, что им зачем-то нужно знать о том, является ли работник инвалидом или нет. Наиболее простое, что приходит в голову — это добавить новый столбец типа bool в вашу таблицу. Но это слишком долго вписывать 1000 значений и ведь true вы будете вписывать намного реже, чем false (2% будут true, например).
Более простым решением будет создать новую таблицу, назовем ее «DisabledEmployee». Она будет выглядеть так:
DisabledPersonId | EmployeeId |
---|---|
1 | 159 |
2 | 722 |
3 | 937 |
Но это еще не связь один к одному. Дело в том, что в такую таблицу работник может быть вписан более одного раза, соответственно, мы получили отношение один ко многим: работник может быть несколько раз инвалидом. Нужно сделать так, чтобы работник мог быть вписан в таблицу только один раз, соответственно, мог быть инвалидом только один раз. Для этого нам нужно указать, что столбец EmployeeId может хранить только уникальные значения. Нам нужно просто наложить на столбец EmloyeeId ограничение unique. Это ограничение сообщает, что атрибут может принимать только уникальные значения.
Выполнив это мы получили связь один к одному.
Заметка. Обратите внимание на то, что мы могли также наложить на атрибут EmloyeeId ограничение primary key. Оно отличается от ограничения unique лишь тем, что не может принимать значения null.
6.1. Вывод
Можно сказать, что отношение один к одному — это разделение одной и той же таблицы на две.
6.2. Реализация
7. Обязательные и необязательные связи
Связи можно поделить на обязательные и необязательные.
7.1. Один ко многим
У одной биологической матери может быть много детей. У ребенка есть только одна биологическая мать.
А) У женщины необязательно есть свои дети. Соответственно, связь необязательна.
Б) У ребенка обязательно есть только одна биологическая мать – в таком случае, связь обязательна.
7.2. Один к одному
У одного человека может быть только один загранпаспорт. У одного загранпаспорта есть только один владелец.
А) Наличие загранпаспорта необязательно – его может и не быть у гражданина. Это необязательная связь.
Б) У загранпаспорта обязательно есть только один владелец. В этом случае, это уже обязательная связь.
7.3. Многие ко многим
Человек может инвестировать в акции разных компаний (многих). Инвесторами какой-то компании являются определенные люди (многие).
А) Человек может вообще не инвестировать свои деньги в акции.
Б) Акции компании мог никто не купить.
8. Как читать диаграммы?
Выше я приводил диаграммы созданных нами таблиц. Но для того, чтобы их понимать, нужно знать, как их «читать». Разберемся в этом на примере диаграммы из пункта 5.3.
Мы видим отношение один ко многим. Одной персоне принадлежит много телефонов.
- Возле таблицы Person находится золотой ключик. Он обозначает слово «один».
- Возле таблицы Phone находится знак бесконечности. Он обозначает слово «многие».
9. Итоги
10. Задачи
Для лучшего усвоения материала предлагаю вам решить следующие задачи:
- Описать таблицу фильм: id, название, длительность, режиссер, жанр фильма. Обратите внимание на то, что у фильма может быть более одного жанра, а к одному жанру может относится более, чем один фильм.
- Описать таблицу песня: id, название, длительность, певец. При этом у песни может быть более одного певца, а певец мог записать более одной песни.
- Реализовать таблицу машина: модель, производитель, цвет, цена
- Описать отдельную таблицу производитель: id, название, рейтинг.
- Описать отдельную таблицу цвета: id, название.
У одной машины может быть только один производитель, а у производителя — много машин. У одной машины может быть много цветов, а у одного цвета может быть много машин.
- Добавить в БД из пункта 6.2. таблицу военно-обязанных по типу того, как мы описали отдельную таблицу DisabledEmployee.
Источник