Táblaí, sraitheanna agus eochracha
What you'll learn
- táblaí, sraitheanna agus colúin a aithint thar a chéile agus a mhíniú cén fáth a dteastaíonn príomheochair ó gach sraith (
idde ghnáth) - na naisc idir táblaí a aimsiú trí eochair eachtrach:
orders.user_id → users.id - eochair ionadach (
IDENTITY, ) a aithint thar cheann nádúrtha (email, ISBN) agus a chosaint cén fáth nár cheart go n-athródh príomheochair - uathúlacht réimse ar nós
emaila dhaingniú le srianUNIQUE, gan é a dhéanamh ina phríomheochair
Tá an t-innéacs oscailte. Osclaíonn QUERY holagram os cionn an bhoird oibre: crochann na mílte taifead san aer i ngreille néata, agus ritheann snáitheanna tanaí ómra idir cuid acu. Síneann tú chuig ceann acu — buaileann sé ar nós teada. Ní carn comhad é seo. Is fabraic é.
Táblaí, sraitheanna, colúin
Tá bunachar coibhneasta cosúil le catalóg néata: tá na sonraí sórtáilte i dtáblaí, agus laistigh de gach tábla tá colúin (cad iad na hairíonna a stórálaimid) agus sraitheanna (na taifid aonair).
Tóg tábla na gceannaitheoirí users: is ceannaitheoir amháin de chuid na Domhain shean é gach sraith, agus déanann na colúin cur síos ar a id, full_name, email, country, city, signup_date.
Ionas nach mbeidh mearbhall ar dhaoine leis an ainm céanna, tá príomheochair () ag gach sraith — aitheantóir uathúil, an colún id de ghnáth. Tríd, is féidir le táblaí eile tagairt a dhéanamh don tsraith seo le eochair eachtrach (). Mar shampla, in ordú orders tá user_id — sin mar a chuimhníonn an t-ordú ar a cheannaitheoir. Is iad na snáitheanna ómra sin ar an holagram na naisc bunaithe ar eochracha.
QUERY: Fad a sheasann an eochair, seasann an snáithe. Céad go leith bliain ina dhiaidh, cuimhníonn gach ordú ar a dhuine fós.
Rith an cheist agus féach cén chuma atá ar cheannaitheoirí «Kotomarket» — taifid nár oscail aon duine ó laethanta an tSeanlín:

Tables, rows, columns
A relational database is like a tidy catalog: the data is sorted into tables, and inside each table there are columns (what properties we store) and rows (the individual records).
Take the buyers’ table users: each row is one buyer from old Earth, and the columns describe their id, full_name, email, country, city, signup_date.
So that people with the same name don’t get confused, every row has a — a unique identifier, usually the id column. Through it, other tables can reference this row using a . For example, an order in orders has a user_id — that’s how an order remembers its buyer. Those amber threads on the hologram are exactly these key-based links.
QUERY: As long as the key holds, the thread holds. A century and a half on, every order still remembers its person.
Run the query and see what Kotomarket’s buyers look like — records no one has opened since the days of the old Net:
| id | full_name | city | signup_date |
|---|---|---|---|
| 1 | Артём Волков | Санкт-Петербург | 2024-10-20 |
| 2 | Екатерина Алексеев | Екатеринбург | 2025-01-25 |
| 3 | Николай Никитин | Алматы | 2024-09-21 |
| 4 | Екатерина Иванов | Новосибирск | 2024-05-04 |
| 5 | Елена Петров | Казань | 2025-01-05 |
| 6 | Ирина Кузнецов | Новосибирск | 2024-09-12 |
Cabhraíonn príomheochair leat sraith amháin a aimsiú gan botún (id de ghnáth). Nascann eochair eachtrach táblaí: mar shampla, taispeánann orders.user_id → users.id cé leis an t-ordú. Ar aghaidh osclóidh QUERY léarscáil iomlán an tseata os do chomhair — na cúig thábla ina n-iomláine.
orders.user_id don phríomheochair users.id — sin mar a chuimhníonn ordú ar a cheannaitheoir.Eochair nádúrtha nó ionadach
Cad as a dtagann an phríomheochair? Tá dhá bhealach ann. Is airí fíor a bhfuil sé uathúil cheana féin í eochair nádúrtha: email ceannaitheora, ISBN leabhair, cód airgeadra. Is aitheantóir saorga gan bhrí sa saol amuigh í eochair ionadach: uathuimhriú nó . Úsáideann «Kotomarket» luachanna id ionadacha i ngach áit — agus is gnáthrogha é sin:
-- Eochair ionadach: tugann an bunachar an chéad uimhir eile é féin (PostgreSQL)
CREATE TABLE users (
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
email TEXT NOT NULL UNIQUE, -- cónaíonn an t-iarrthóir nádúrtha lena thaobh mar UNIQUE
full_name TEXT NOT NULL
);
Cén fáth mar seo? Príomhthréith na príomheochrach: níor cheart go n-athródh sí. Tagraíonn eochracha eachtracha táblaí eile don PK, agus tharraingeodh athrú a luacha nuashonrú gach snáithe leis san am céanna — in orders, in events, i ngach áit. Agus is ar éigean atá airíonna nádúrtha «síoraí» ann: athraíonn daoine a n-email agus a sloinne, aistrítear uimhreacha gutháin, athfhoilsítear fiú ISBNanna. Ní athraíonn id ionadach choíche — go díreach toisc nach gciallaíonn sé aon rud.
Na riachtanais d’aon phríomheochair: uathúil, ní NULL, cobhsaí. Fág eochracha nádúrtha do tháblaí tagartha beaga do-athraithe — cód an airgeadra 'RUB' ó ISO 4217, abair. Agus uathúlacht iarrthóra nádúrtha ar nós email, daingnigh í le srian UNIQUE ar leith, mar atá sa sampla thuas: seasann na naisc, fanann na sonraí macánta, agus ní choisctear ar an gceannaitheoir a email a athrú.
Ag dul chun cinn: is é an chomhréir féin chun táblaí agus srianta a chruthú (CREATE TABLE, PRIMARY KEY, UNIQUE) ábhar Chaibidil 9. Anseo, féach ar struchtúr na heochrach seachas ar an ordú: gur tháinig id ionadach ina phríomheochair, agus go gcónaíonn email lena thaobh mar UNIQUE.
Interview question
Ceist agallaimh: cén difríocht atá idir eochair ionadach agus eochair nádúrtha, agus cé acu a roghnódh tú do thábla úsáideoirí?
Freagra láidir: is airí fíor uathúil í an cheann nádúrtha (email, ISBN), is aitheantóir saorga í an cheann ionadach (colún IDENTITY nó ). D’úsáideoirí — ionadach: níor cheart go n-athródh príomheochair toisc go dtagraíonn eochracha eachtracha di, agus athraíonn daoine a n-email. Daingnítear uathúlacht an email ansin le srian UNIQUE ar leith. Tá údar le heochair nádúrtha i dtáblaí tagartha cobhsaí ar nós cóid airgeadra ISO 4217.