Son haftalık toplantımızda, Veritabanı Yönetimi'nde arka plan deneyimi olmayan bir kişi şu soruyu gündeme getirdi:
"Verileri birkaç satır yerine satır içi (dize) depolamayı haklı kılacak bir senaryo var mı?"
countryStates
Bir ülkenin eyaletlerini depolamak istediğimiz yerde bir tablo varsayalım ; Bu örnek için ABD'yi kullanacağım ve tembellik uğruna tüm Devletleri listelemeyeceğim.
Orada iki sütunumuz olacaktı; biri aradı Country
, diğeri aradı States
. Tartışıldığı gibi burada ve @ srutzky en önerdiği yanıt , PK
tarafından tanımlanan kod olacak ISO 3166-1 alfa-3 .
Masamız şöyle görünür:
+---------+-----------------------+-------------------------------------------------------+
| Country | States | StateName |
+---------+-----------------------+-------------------------------------------------------+
| USA | AL, CA, FL,OH, NY, WY | Alabama, California, Florida, Ohio, New York, Wyoming |
+---------+-----------------------+-------------------------------------------------------+
Aynı soruyu bir arkadaş geliştiriciye sorduğunda, veri trafiği boyutu açısından, bunun yararlı olabileceğini, ancak bu verileri manipüle etmemiz gerekiyorsa değil dedi. Bu durumda, uygulama kodunda bu dizeyi bir listede dönüştürebilecek bir zeka olması gerekir (diyelim ki bu tabloya erişimi olan yazılımın birleşik giriş kutusu oluşturması gerekir).
Bu modelin çok kullanışlı olmadığı sonucuna vardık, ancak bunu faydalı hale getirmenin bir yolu olabileceğinden şüphelendim.
Sormak istediğim, herhangi birinizin böyle bir şeyi gerçekten işe yarayacak bir şekilde görmüş, duymuş veya yapmış olup olmadığıdır .
a;b;c
, sonra dize sizi ayrıştırmak almak için kullanıcı arabirimi kullanmasını a
, b
, c
belki onlarla bir şeyler yapıyor yürütme ve carry ?. Bu tarzda bir tür özel ihtiyaca uygun olabileceğini hissedin ... İkinci düşüncede hayır. Her zaman kimlikleri depolayabilir, tablolarınıza katılabilir ve