Forum » Programiranje » Tag-i v MySQL
Tag-i v MySQL
senad332 ::
Za nek projektič v šoli delam nek budžet planning app, pa ne vem kako bi najbolj 'proper'/najboljše/naj..karkoli že naredil tage.
torej naprimer podatki:
Torej nekako bi rad selectal recimo vse nakupe z tagom avto, ali pa vse nakupe bencina, ali pa vse nakupe z tagom avto, ipd
Kako bi to najbolje/najlažje naredil? Torej kako shranit te tage v bazo (v kaki obliki), in kako potem selectat ven, da bo najbolj optimalno? Tagi so lahko poljubni tekstovni tao da selectanje z LIKE "%tag%" dvommim da bo slo.
torej naprimer podatki:
datum - znesek - prejemnik - tagi
1.2. - 10eur - petrol LJ - avto, bencin, petrol
2.2 - 50eur - mercator - avto, mercator
3.2. - 20eur - mercator - mercator, hrana
4.2 - 30eur - leclerc - leclerc,hrana
...
Torej nekako bi rad selectal recimo vse nakupe z tagom avto, ali pa vse nakupe bencina, ali pa vse nakupe z tagom avto, ipd
Kako bi to najbolje/najlažje naredil? Torej kako shranit te tage v bazo (v kaki obliki), in kako potem selectat ven, da bo najbolj optimalno? Tagi so lahko poljubni tekstovni tao da selectanje z LIKE "%tag%" dvommim da bo slo.
xtpwn ::
datum shraniš kot datetime
znesek kot double
prejemnik kot varchar
tagi kot varchar
pri izpisu pa enostavno z WHERE pogojem, če pa želiš nekaj poljubnega izpisat pa uporabi LIKE
Upam da sem te prav razumel.
znesek kot double
prejemnik kot varchar
tagi kot varchar
pri izpisu pa enostavno z WHERE pogojem, če pa želiš nekaj poljubnega izpisat pa uporabi LIKE
Upam da sem te prav razumel.
MrStein ::
znesek kot double
V praksi je to tudi narobe. Prav je integer, ki šteje cente.
Ravno pred dnevi en linkal celi članek na to temo. Če/ko najdem, linkam.
Ekstra tabela Tags in relacija M:N.
Če se prejemniki ponavljajo, je dobro tudi njih dati v ločeno tabelo in se na njih sklicevati s ključem.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Zgodovina sprememb…
- spremenil: MrStein ()
abyssus ::
Ravno pred dnevi en linkal celi članek na to temo. Če/ko najdem, linkam.
Ekstra tabela Tags in relacija M:N.
Če se prejemniki ponavljajo, je dobro tudi njih dati v ločeno tabelo in se na njih sklicevati s ključem.
Drži. :)
Članek me vsekakor zanima, tudi sam sem do sedaj vedno kot double beležil zneske.
Zgodovina sprememb…
- spremenilo: abyssus ()
xtpwn ::
abyssus ::
znesek kot double
V praksi je to tudi narobe. Prav je integer, ki šteje cente.
Ravno pred dnevi en linkal celi članek na to temo. Če/ko najdem, linkam.
Tudi mene zanima ta link, ni mi jasno zakaj integer.
Čas (datum) lahko tudi v obliki integerja hraniš - v SQLite jaz osebno vedno v takšni obliki shranjujem.
http://www.unixtimestamp.com/
black ice ::
senad332 ::
za zneske pa vse ostalo mi je jasno
ni mi jasno kako naj eni 'transkaciji/nakupu' dodam več tagov, pa potem selectam po enem izmed teh tagov, pa da deluje za vse primere (tudi če imaš tag 'a' in 'aa', kjer 'where tag like "%a%"' ne prime
torej je edina rešitev ločena tabela za tage, pa joini oz. preseki in joini (v primeru več tagov)?
ni mi jasno kako naj eni 'transkaciji/nakupu' dodam več tagov, pa potem selectam po enem izmed teh tagov, pa da deluje za vse primere (tudi če imaš tag 'a' in 'aa', kjer 'where tag like "%a%"' ne prime
torej je edina rešitev ločena tabela za tage, pa joini oz. preseki in joini (v primeru več tagov)?
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Strojni Vid - detekcija zaporedja barvOddelek: Programiranje | 2621 (1895) | skodaaa |
» | Linux 4.10 je tu (strani: 1 2 )Oddelek: Novice / Operacijski sistemi | 14813 (11542) | BigWhale |
» | entitete - sqlOddelek: Programiranje | 1078 (812) | boogie_xlr |
» | C++ double _1.0000imavrednost0.99999Oddelek: Programiranje | 1587 (1340) | Spura |
» | php string v intOddelek: Programiranje | 1295 (1119) | lukanium |