Hej,
chcę zbudować aplikację, która pozwala (m.in) na operacje CRUD na tekstach piosenek (z chwytami na gitarę). Zastanawiam się jak najlepiej będzie je przechowywać - jako zwykłe pole text w bazie danych, czy może jako osobny plik, a w bazie pod song.text będzie ścieżka do pliku?
Co będzie działało efektywniej? (tak, żeby użytkownik mógł dodawać teksty, edytować. itd.) Zależy mi na łatwym wyświetlaniu tekstu - każda linijka osobno (czyli żeby widok odczytywał “\n” poprawnie - tu chyba lepiej plik?).
Mam nadzieję, że w miarę sensownie sformułowałem moje myśli. Z góry dzięki za odp.
Baza. W activerecordzie dla mysql’a, typ text standardowo może przyjąć 65k znaków, który możesz spokojnie powiększyć do 16mln znaków. Znak nowej linii też można ogarnąć
Baza, ale nie dlatego ze ‘w MySQL mozna 65k znakow’, ale bardziej dlatego, ze tu jednak masz do czynienia z ustrukturyzowanymi danymi. Zastanowilbym sie, co tutaj stanowi ‘jednostke’ - piszesz, ze tekst tworza linie, ale zauwaz, ze akordy zmieniaja sie pewnie co pół / cały takt. Zakladam, ze bez sensu jest opisywanie ich na zasadzie ‘po 4.5 sekundzie zmieniam z C na e7’, ale bardziej na zasadzie ćwierćnut / półnut czy ósemek, w zaleznosci od utworu. A tekst - zazwyczaj jakos tam sie z tymi akordami synchronizuje, wiec moim zdaniem on tez bedzie rozbity, przynajmniej na ‘takty’.
Był kiedyś program ‘guitar pro’ do tabulatur i mial swoj format eksportu/zapisu ‘tabow’ - https://en.wikipedia.org/wiki/Guitar_Pro - moglbys poczytac, jak tam do tego podeszli.