DB táblastruktúrát tárolására értéklisták együtt a szokásos értékeket

  • MySQL
  • adatbázisok
  • adatok tárolása
  • adatfeldolgozás

Adatbázis: MySQL.
Célkitűzés: tárolja az adatokat formájában slovarevidnye id: int-> érték: string.
A probléma: kiderült, hogy néha meg kell egyeznie az azonos id értéke listán. Ebben az esetben is, ha a lista áll egy elem, akkor is szükséges, hogy megkülönböztessék a normális értéket.

Látom több megoldást, de egyik sem én nem szeretem.

1) tartsa az adatokat egy húr, és bármilyen formátumban: XML, JSON, stb Aztán egy szöveges mező mentheti az egész objektumot.
Opció nem tetszik az a tény, hogy a végén megkapjuk de-normalizálása adatok és kapcsolatos problémák is, mint például az, hogy nem működik értékek az egyes szabványos SQL eszközök listáját. Olvasása és módosítása egyes elemek majd végre kell hajtania az alkalmazás segítségével.

1.a) az adatokat tárolja az ugyanabban a sorban a szeparátor. Ez egy különleges lehetőség esetében 1 és hátrányait ugyanaz.

2) Hozzon létre egy külön táblázatot értéklisták.
Opció nem tetszik az a tény, hogy lesz, hogy a vizsgálatokat már két táblázatot, ha az olvasás és írás közben.

3) Tartsa az összes adatot egy táblázatban, csak ne id húr szótárban egyedi kulcsot, akkor adjunk hozzá több bejegyzést azonos id.
Nem tetszik az a tény, hogy míg a nehéz meghatározni, hogy ez az elem egy rendszeres jellemzője vagy egy részének a listán. Ha speciális területen zászló, a la is_list_element - mankó.

Nos, nekem ez a 2. lehetőség (hozzon létre egy külön táblázatot értékek listáját.) Optimális és színvonalát. Általában ezek eltérnek csak szokatlan helyzetekben. Én nem ajánlom, hogy kitaláljon egy kerékpárt.

Igen, a legvalószínűbb, akkor azt használni. Csak reméltem, hogy figyelmen kívül néhány nyilvánvaló és egy jó lehetőség.

Engedjék meg, hogy kérje, és az arány a hagyományos elemek körülbelül listában valamit hatásaitól?

Én most aggódik egy másik kérdés. Majd létre két kiviteli alak №2 asztalra, és a táblák fordult azonos szerkezetűek, kivéve az egyedi index az első táblázatban.
Ie Van három területen: id, CONTROL_ID, értékét.
Az asztal egyszerű elemekből CONTROL_ID kell rendelni egy rekordot az alábbi táblázatban és az oldalelemek, amelyre az adatok csökkenni fog (szövegdoboz). A második táblázat CONTROL_ID ugyanazt a szerepet tölti a legördülő listák + ezen a területen kell csoportos nyilvántartásra.
Minden jó, de gyakorlatilag azonos szerkezetű táblázatok vezet gyanú :)

Engedjék meg, hogy kérje, és az arány a hagyományos elemek körülbelül listában valamit hatásaitól? Ha csak 1% -át a nyilvántartást a forma „listát”, és csak 1-2 kettős minden, akkor 99-szer 100 fogod tölteni 2 kérések egy helyett, és csak 1 alkalommal pénzt takarít meg csinál valamit. Megéri?
Ez valami hasonló cache-t. Ha a gyorsítótár épül sokáig ... és van egy 99% -os cache hit is, és ha 1% cache találatot, a pont a cache általában nem sokat. A gyorsítótár valahogyan sokkal nyilvánvalóbb :)

Minden jó, de szinte azonos tábla szerkezete vezet gyanú Pontosan. Teljesen igazad van itt.
De a végső döntés függ a tényleges adatokat. A normalizálás kell tenni javára, nem utolsósorban azért, hogy csökkentse az adatok mennyiségét. És abban az esetben majdnem teljes párhuzamos ...
Azaz, ha a 10 az átlag értékeket az egyes gombot, míg 80% -uk legfontosabb érték típusú „list”, a választás a második lehetőség az egyértelmű. És ha listák ritkák és kicsi, ez nem egyedi, mint a minimum.

A kérdésre adott válasz

Kapcsolódó cikkek