?

Log in

No account? Create an account

October 7th, 2018

Продолжаем разговор.

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

Когда мы говорим, что используем какую-то определенную "систему управления базами данных" (СУБД), например, Оракул, или мой любимый Постгрес,мы используем программу, которая умеет строить эти стеллажи и полочки и писать этикетки. Но что именно класть на какие полочки, как быстро найти полочку, на которую нужно положить, как еще быстрее найти все полочки, с которых нужно взять - это зависит от конкретной задачи. Что именно мы раскладываем на полочки.

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

Мы даем людям ссуды. Или не даем :). В любом случае, нам нужно хранить данные по ссуде. Ссуду дают "человеку", и данные о "человеке" тоже надо хранить. Может показаться, что правильно с каждой ссудой связать фамилию и имя человека, которому эту ссуду дали. Но тогда, если у человека несколько ссуд, его ФИО будет повторяться в каждой записи о его ссудах. Так что логично будет сохранять записи о человеке в одной табличке, и туда написать его ФИО, дату рождения и т.п. А в табличке с данными о ссуде (кто-когда-сколько) сохраним заодно и номер - ссылку на запись о ссудополучателе.

И вот мы уже приняли первое дизайнерское решение :).

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

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

- по логину
- по телефону,
- по имени и фамилии
- по дате рождения и последним четырем цифрами SSN
и т.д.

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

Полезные кексы

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

В этот раз, впрочем, на выходных. Рецепт вот тут. Я сделала одну порцию вечером в субботу, и тут же спросила Зою, а как сделать то же самое, только с перламутровыми пуговицами с тыквенным пюре, которого у меня завал. Гугл сказал, что молока добавить :), и утром в воскресеньея сделала еще двенадцать.

Вкусно!



Tags:

Latest Month

November 2018
S M T W T F S
    123
45678910
11121314151617
18192021222324
252627282930 

Tags

Powered by LiveJournal.com
Designed by Tiffany Chow