Podczas naszego ostatniego cotygodniowego spotkania osoba, która nie ma doświadczenia w administrowaniu bazami danych, poruszyła następujące pytanie:
„Czy byłby scenariusz uzasadniający przechowywanie danych w wierszu (ciąg) zamiast kilku wierszy?”
Załóżmy tabelę o nazwie, w countryStates
której chcemy przechowywać stany kraju; Wykorzystam w tym przykładzie USA i nie będę wymieniał wszystkich stanów ze względu na lenistwo.
Tam mielibyśmy dwie kolumny; jeden dzwonił, Country
a drugi dzwonił States
. Jak omówiono tutaj i zaproponowano w odpowiedzi @ srutzky , PK
będzie to kod zdefiniowany w ISO 3166-1 alfa-3 .
Nasz stół wyglądałby tak:
+---------+-----------------------+-------------------------------------------------------+
| Country | States | StateName |
+---------+-----------------------+-------------------------------------------------------+
| USA | AL, CA, FL,OH, NY, WY | Alabama, California, Florida, Ohio, New York, Wyoming |
+---------+-----------------------+-------------------------------------------------------+
Zadając to samo pytanie znajomemu programistom, powiedział, że z punktu widzenia wielkości ruchu danych może to być przydatne, ale nie, jeśli będziemy musieli manipulować tymi danymi. W takim przypadku musiałaby istnieć inteligencja w kodzie aplikacji, która mogłaby przekształcić ten ciąg w listę (powiedzmy, że oprogramowanie, które ma dostęp do tej tabeli, musi utworzyć pole kombi).
Doszliśmy do wniosku, że ten model nie jest zbyt przydatny, ale zacząłem podejrzewać, że może istnieć sposób, aby uczynić go użytecznym.
Chciałbym zapytać, czy któryś z was już widział, słyszał lub robił coś takiego w sposób, który naprawdę działa .
a;b;c
, użyj przód do analizowania ciąg następnie dostać a
, b
, c
i kontynuować wykonanie robi coś z nimi, może ?. Czuję, że może to odpowiadać jakiejś konkretnej potrzebie w ten sposób ... Z drugiej strony nie. Zawsze możesz przechowywać identyfikatory,