AI agus Bunachair Sonraí MySQL...
Is botún suntasach é go bhfuil go leor scéimeanna bunachar sonraí AI-ghinte faoi láthair ag fabhrú úsáid VARCHAR(36) don cholún id.
Bíonn sé seo spreagtha de ghnáth ag fonn rochtain neamhúdaraithe a chosc ó ghnímhaithe mailíseacha. Chun seo a bhaint amach, úsáidtear UUID (Aitheantóirí Uathúla Uilíocha) go minic mar bheart slándála.
Glacaimis WordPress mar shampla — nochtann sé go hiondúil IDanna poist san URL mar ?p=45. I gcomparáid le formáid SEO-chairdiúil mar /2025/05/sample-post, ceadaíonn an ID uimhriúil seo d'úsáideoirí b'fhéidir ábhar in aice láimhe a thomhas agus rochtain a fháil air trí an uimhir a athrú (m.sh. ?p=44). Tá UUID ar an taobh eile nach bhfuil seicheamhach agus tá sé i bhfad níos deacra a thomhas.
Is teaghráin 36 carachtar iad UUID a leanann formáid chaighdeánach le cúig rannóg scartha ag dashes: 8-4-4-4-12. Tá gach rannóg comhdhéanta de luachanna heicsideiceamacha:
550e8400-e29b-41d4-a716-446655440000
f47ac10b-58cc-4372-a567-0e02b2c3d479
123e4567-e89b-12d3-a456-426614174000
Breathnaíonn regex simplí chun UUID a bhailíochtú mar seo:
^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$
Cé go dtairgeann UUID slándáil agus iniompartha, tagann siad le comhréiteach. Tá siad i bhfad níos mó ná slánuimhreacha, rud a d'fhéadfadh feidhmíocht an bhunachair sonraí a mhoilliú — go háirithe nuair a úsáidtear iad mar phríomheochracha i mbunachair sonraí coibhneasta. Fulangann innéacsú, úsáid cuimhne agus luas ceiste go léir mar gheall ar mhéid agus nádúr neamh-sheicheamhach UUID.
Fiosrach faoin rogha dearaidh seo, chuir mé an cheist seo a leanas ar GitHub Copilot:
Mise:
Cén fáth ar roghnaigh tú an cholún id a shainiú mar VARCHAR(36) PRIMARY KEY sa struchtúr bunachar sonraí?
GitHub Copilot:
Roghnaigh mé
VARCHAR(36)do cholúin ID ar roinnt cúiseanna sonracha:
- Stóráil UUID: Déanann an fad 36 carachtar freastal ar luachanna UUID, a leanann formáid chaighdeánaithe.
- Córais Iltionónta: Cuidíonn UUID le tionóntaí a leithlisiú trí sceitheadh ID seicheamhach a dhíothú, aistrithe a shimpliú agus slándáil a fheabhsú.
- Iniompartha Sonraí: Cinntíonn UUID nach bhfuil imbhuailtí ID ag sonraí onnmhairithe nuair a iompórtáiltear iad go córas eile.
Comhréiteach:
- Méid stórála níos mó (36 beart i gcoinne 4 beart do
INT)- Feidhmíocht innéacsúcháin agus ceiste níos moille
- Úsáid cuimhne níos airde
Roghanna le breithniú:
AUTO_INCREMENT INT/BIGINTBINARY(16)chun bearta UUID amh a stóráil níos éifeachtaí- Straitéis giniúna ID saincheaptha
Lig dom a fhios má thaitníonn cur chuige difriúil leat.
Mise:
Úsáid BIGINT UNSIGNED d'fheidhmíocht, ach coinnigh réimse guid i ngach taifead do thagairtí seachtracha.
GitHub Copilot:
Nuashonrófaidh mé an scéim chun
BIGINT UNSIGNEDa úsáid mar phríomheocha agus colúnguida chur leis do thagairtí seachtracha. Comhdhaíonn an cur chuige cóimheasctha seo an chuid is fearr den dá straitéis:
- Feidhmíocht: Innéacsú éifeachtach agus comhcheangail trí phríomheochracha uimhriúla
- Slándáil agus Iniompartha: GUID nochta in APIanna, ag coinneáil ID inmheánacha slán ó áireamh
Achoimre:
BIGINT UNSIGNED: Tapa, dlúth, seicheamhachGUID (VARCHAR): Uathúil, iniomparthach, slán go seachtrach
Cé go dtairgeann bunachair sonraí coibhneasta solúbthacht sa rogha idir UUID, slánuimhreacha nó hibrideach, glacann córais NoSQL cosúil le MongoDB cosán difriúil.
Úsáideann MongoDB cineál ionsuite ar a dtugtar ObjectId dá réimse _id. Is luach dénártha 12-beart é seo a ionchódaíonn:
Sampla:
507f1f77bcf86cd799439011
VARCHAR(36). Tá siad níos cairdiúla d'innéacsú freisin.| Gné | UUID (VARCHAR) | BIGINT + GUID Hibrideach | MongoDB ObjectId |
|---|---|---|---|
| Méid stórála | 36 beart | 8 + 36 beart | 12 beart |
| Feidhmíocht innéacsaithe | Dona | Ar fheabhas | Ar fheabhas |
| Ord seicheamhach / ama | Níl | Tá (BIGINT amháin) | Tá (trí stampa ama) |
| Formáid inléite | Tá | Tá (GUID) | Níl (bunaithe ar hex) |
| Intuisceana | Níl | Níl (GUID amháin) | Níl |
| Forfheidhmiú scéime | Docht | Docht | Solúbtha |
Úsáideann go leor córas AI-ghinte cumraíochtaí NoSQL cosúil le MongoDB de réir réamhshocraithe nuair:
I gcásanna mar sin, is rogha chiallmhar réamhshocraithe minic é ObjectIds nó aitheantóirí uathúla cosúla, inordaithe in am a úsáid.