3.3. ÐнеÑние клÑÑи
ÐÑпомниÑе ÑаблиÑÑ weather и cities из ÐлавÑ 2. ÐавайÑе ÑаÑÑмоÑÑим ÑледÑÑÑÑÑ Ð·Ð°Ð´Ð°ÑÑ: Ð²Ñ Ñ
оÑиÑе добиÑÑÑÑ, ÑÑÐ¾Ð±Ñ Ð½Ð¸ÐºÑо не мог вÑÑавиÑÑ Ð² ÑаблиÑÑ weather ÑÑÑоки, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ
не наÑ
одиÑÑÑ ÑооÑвеÑÑÑвÑÑÑÐ°Ñ ÑÑÑока в ÑаблиÑе cities. ÐÑо назÑваеÑÑÑ Ð¾Ð±ÐµÑпеÑением ÑÑÑлоÑной ÑелоÑÑноÑÑи даннÑÑ
. РпÑоÑÑÑÑ
СУÐÐ ÑÑо пÑиÑлоÑÑ Ð±Ñ ÑеализоваÑÑ (еÑли ÑÑо вообÑе возможно) Ñак: ÑнаÑала Ñвно пÑовеÑиÑÑ, еÑÑÑ Ð»Ð¸ ÑооÑвеÑÑÑвÑÑÑие запиÑи в ÑаблиÑе cities, а заÑем оÑклониÑÑ Ð¸Ð»Ð¸ вÑÑавиÑÑ Ð½Ð¾Ð²Ñе запиÑи в ÑаблиÑÑ weather. ÐÑÐ¾Ñ Ð¿Ð¾Ð´Ñ
од оÑÐµÐ½Ñ Ð¿ÑоблемаÑиÑен и неÑдобен, поÑÑÐ¾Ð¼Ñ Ð²ÑÑ ÑÑо Postgres Pro Ð¼Ð¾Ð¶ÐµÑ ÑделаÑÑ Ð·Ð° ваÑ.
Ðовое обÑÑвление ÑаблиÑÑ Ð±ÑÐ´ÐµÑ Ð²ÑглÑдеÑÑ Ñак:
CREATE TABLE cities (
name varchar(80) primary key,
location point
);
CREATE TABLE weather (
city varchar(80) references cities(name),
temp_lo int,
temp_hi int,
prcp real,
date date
);ТепеÑÑ Ð¿Ð¾Ð¿ÑобÑйÑе вÑÑавиÑÑ Ð½ÐµÐ´Ð¾Ð¿ÑÑÑимÑÑ Ð·Ð°Ð¿Ð¸ÑÑ:
INSERT INTO weather VALUES ('Berkeley', 45, 53, 0.0, '1994-11-28');ÐШÐÐÐÐ: INSERT или UPDATE в ÑаблиÑе "weather" наÑÑÑÐ°ÐµÑ Ð¾Ð³ÑаниÑение внеÑнего клÑÑа "weather_city_fkey" ÐÐÐÐ ÐÐÐÐСТÐ: ÐлÑÑ (city)=(Berkeley) оÑÑÑÑÑÑвÑÐµÑ Ð² ÑаблиÑе "cities".
Ðоведение внеÑÐ½Ð¸Ñ ÐºÐ»ÑÑей можно подÑÑÑоиÑÑ ÑоглаÑно ÑÑебованиÑм ваÑего пÑиложениÑ. ÐÑ Ð½Ðµ бÑдем ÑÑложнÑÑÑ ÑÑÐ¾Ñ Ð¿ÑоÑÑой пÑÐ¸Ð¼ÐµÑ Ð² данном введении, но Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе обÑаÑиÑÑÑÑ Ð·Ð° дополниÑелÑной инÑоÑмаÑией к Ðлаве 5. ÐÑавилÑно пÑименÑÑ Ð²Ð½ÐµÑние клÑÑи, Ð²Ñ Ð¾Ð¿ÑеделÑнно ÑоздадиÑе более каÑеÑÑвеннÑе пÑиложениÑ, поÑÑÐ¾Ð¼Ñ Ð¼Ñ Ð½Ð°ÑÑоÑÑелÑно ÑекомендÑем изÑÑиÑÑ Ð¸Ñ .