Piszę aplikację, która komunikuje się z webowym interfejsem API, który odpowiada za pomocą JSON. Obecnie tłumaczę obiekty JSON na obiekty Java za pomocą gson (co jest niesamowite, przy okazji).Przechowuj JSON w polu sqlite?
Teraz chcę przechowywać niektóre z tych obiektów w bazie danych SQLite. Jednak mają one wiele właściwości, które nigdy nie byłyby używane w zapytaniach (tzn. Nie będę z tymi właściwościami oznaczać, że nie będę ich używać), więc uważam, że nie jest konieczne tworzenie kolumn dla wszystkich z nich. Co mam na myśli to robi:
- mieć tylko kolumny dla podstawowych danych, które będą używane podczas zapytań do bazy danych
- Mają jedną
TEXT
lubBLOB
kolumnę (który z nich polecacie?), Który przechowuje rzeczywisty JSON, więc mogę odtworzyć obiekt Java z niego i uzyskać dostęp do wszystkich danych.
To zarówno uczynić moje życie łatwiejsze i usprawnić mojego kodu (nie będę musiał napisać bardzo inny kod gdy mamy do czynienia z danymi z API w porównaniu z danymi z bazy danych).
Jednak, chociaż nie widzę wad, to wydaje się nieco podejrzany.
Jakie problemy napotkasz, jeśli użyję tej techniki?
Technicznie byłoby to naruszeniem zasad normalizacji - pól, których wartości zależą od innych dziedzin, ale zasady normalizacji to sugestie, a nie zasady rzeźbione w kamieniu - MUSISZ robić to w ten sposób. –
W mojej aplikacji przechowuję dane JSON w polu "TEKST", ale to dane, które nie zasługują na swoją własną tabelę. – javisrk
@Marc Podoba mi się, jak tłumaczyłeś "podejrzany" w "naruszeniu zasad normalizacji" :) (tak, wiem, czym one są) – Felix