Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.www.php > #20396 > unrolled thread
| Started by | "Franco Af" <nonvalidanonvalidanonvalida@falsa.com> |
|---|---|
| First post | 2016-02-21 12:09 +0100 |
| Last post | 2016-02-23 14:16 +0000 |
| Articles | 9 — 5 participants |
Back to article view | Back to it.comp.www.php
Classe gestione database "Franco Af" <nonvalidanonvalidanonvalida@falsa.com> - 2016-02-21 12:09 +0100
Re: Classe gestione database Alex <tommaso5ita@yahoo.it> - 2016-02-21 13:49 +0100
Re: Classe gestione database fmassei@gmail.com - 2016-02-21 10:28 -0800
Re: Classe gestione database "Franco Af" <nonvalidanonvalidanonvalida@falsa.com> - 2016-02-22 15:42 +0100
Re: Classe gestione database Andrea D'Amore <anddam+NOSPAM@brapi.net> - 2016-02-22 18:08 +0100
Re: Classe gestione database Alessandro Pellizzari <shuriken@amiran.it> - 2016-02-23 06:43 +0000
Re: Classe gestione database Andrea D'Amore <anddam+NOSPAM@brapi.net> - 2016-02-23 08:45 +0100
Re: Classe gestione database "Franco Af" <nonvalidanonvalidanonvalida@falsa.com> - 2016-02-23 13:53 +0100
Re: Classe gestione database Alessandro Pellizzari <shuriken@amiran.it> - 2016-02-23 14:16 +0000
| From | "Franco Af" <nonvalidanonvalidanonvalida@falsa.com> |
|---|---|
| Date | 2016-02-21 12:09 +0100 |
| Subject | Classe gestione database |
| Message-ID | <nac5sv$r5o$1@gioia.aioe.org> |
Sto cercando una classe per gestire dati generici. In pratica devo gestirlo con l'indicizzazione a tag, Esiste qualcosa di già fatto? Ho cercato un po' ma non ho trovato nulla.
[toc] | [next] | [standalone]
| From | Alex <tommaso5ita@yahoo.it> |
|---|---|
| Date | 2016-02-21 13:49 +0100 |
| Message-ID | <nacbpi$106i$1@adenine.netfront.net> |
| In reply to | #20396 |
Franco Af ha usato la sua tastiera per scrivere : > Sto cercando una classe per gestire dati generici. > In pratica devo gestirlo con l'indicizzazione a tag, > Esiste qualcosa di già fatto? > Ho cercato un po' ma non ho trovato nulla. Non si capisce, temo. Bye -- Alex --- news://freenews.netfront.net/ - complaints: news@netfront.net ---
[toc] | [prev] | [next] | [standalone]
| From | fmassei@gmail.com |
|---|---|
| Date | 2016-02-21 10:28 -0800 |
| Message-ID | <fd4b6b77-86a2-41df-a0de-61d657e00e81@googlegroups.com> |
| In reply to | #20396 |
On Sunday, February 21, 2016 at 6:09:24 AM UTC-5, Franco Af wrote: > Sto cercando una classe per gestire dati generici. > In pratica devo gestirlo con l'indicizzazione a tag, > Esiste qualcosa di già fatto? > Ho cercato un po' ma non ho trovato nulla. Sì, non si capisce.. Che devi fare? Ciao!
[toc] | [prev] | [next] | [standalone]
| From | "Franco Af" <nonvalidanonvalidanonvalida@falsa.com> |
|---|---|
| Date | 2016-02-22 15:42 +0100 |
| Message-ID | <naf6pe$jdf$1@gioia.aioe.org> |
| In reply to | #20396 |
Ok cerco di spiegarmi meglio... In pratica ho una tabella dati formata in questo modo. id - data - dati Vorei poter associare dei tag per ogni record della tabella un qualcosa di simile a delicious per intenderci. (i dati potrebbero essere appunto le url) Programmare la gestione dei tag dall'inizio è una cosa un po' lunga e vorrai un qualcosa di già pronto. grazie
[toc] | [prev] | [next] | [standalone]
| From | Andrea D'Amore <anddam+NOSPAM@brapi.net> |
|---|---|
| Date | 2016-02-22 18:08 +0100 |
| Message-ID | <naffb9$sj5$1@virtdiesel.mng.cu.mi.it> |
| In reply to | #20404 |
On 2016-02-22 14:42:47 +0000, Franco Af said: > Ok cerco di spiegarmi meglio... > In pratica ho una tabella dati formata in questo modo. > id - data - dati FAIL > Vorei poter associare dei tag per ogni record della tabella un qualcosa > di simile a delicious per intenderci. (i dati potrebbero essere appunto > le url) Dato che immagino tu stia usando un db relazionale, crea una bella tabella Tags(_id_, name) e poi crea una relazione molti-a-molti tra le due tabelle. > Programmare la gestione dei tag dall'inizio è una cosa un po' lunga e > vorrai un qualcosa di già pronto. Non mi è molto chiaro che indendi con il "programmare la gestione dei tag". Se ti riferisci alla logica del livello applicazione non troverai una "classe" per farlo perchè è un compito troppo specifico della singola applicazione. Potresti piuttosto trovare una piccola webapp che fa già il lavoro che chiedi, ovvero conservare e taggare URL, e partire da quella. IMHO. -- Andrea
[toc] | [prev] | [next] | [standalone]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2016-02-23 06:43 +0000 |
| Message-ID | <dj2dcnFa96jU1@mid.individual.net> |
| In reply to | #20405 |
Il Mon, 22 Feb 2016 18:08:57 +0100, Andrea D'Amore ha scritto: > Dato che immagino tu stia usando un db relazionale, crea una bella > tabella Tags(_id_, name) e poi crea una relazione molti-a-molti tra le > due tabelle. Nel caso specifico dei tag io nel tempo mi sono stabilizzato su una delle due soluzioni: 1: create table oggetto (id int auto_increment, ...) create table tag (tag varchar unique) create table oggetto_tag (id_obj int FK, tag varchar FK) 2: create table oggetto (id int auto_increment, ...) create table oggetto_tag (id_obj int FK, tag varchar) Senza "tabella base", ma normalizzando i tag (mb_strtolower, replace di spazi con - o _, ecc.) Sempre più spesso uso la 2, visto che la 1 aggiunge solo overhead sul DB. La soluzione con "table tag (id, name)" non la uso perchè il tag è già primary key, non serve un id. Bye.
[toc] | [prev] | [next] | [standalone]
| From | Andrea D'Amore <anddam+NOSPAM@brapi.net> |
|---|---|
| Date | 2016-02-23 08:45 +0100 |
| Message-ID | <nah2n0$scm$1@virtdiesel.mng.cu.mi.it> |
| In reply to | #20406 |
On 2016-02-23 06:43:35 +0000, Alessandro Pellizzari said: > create table oggetto (id int auto_increment, ...) > > create table oggetto_tag (id_obj int FK, tag varchar) > > Senza "tabella base", ma normalizzando i tag (mb_strtolower, replace di > spazi con - o _, ecc.) Capisco che attaccare letteralmente le etichette agli oggetti renda il db più chiaro ma mi sembra concettualmente "sbagliato" duplicare i valori ma dipende ovviamente dal caso d'uso. Se hai un milione di oggetti che sono etichettati "coso" può essere rilevante. > La soluzione con "table tag (id, name)" non la uso perchè il tag è già > primary key, non serve un id. Deformazione sqlite, anche io sono per la chiave minima e, in questo caso di colonna singola, per usare tutta la tupla come chiave. -- Andrea
[toc] | [prev] | [next] | [standalone]
| From | "Franco Af" <nonvalidanonvalidanonvalida@falsa.com> |
|---|---|
| Date | 2016-02-23 13:53 +0100 |
| Message-ID | <nahko0$kok$1@gioia.aioe.org> |
| In reply to | #20396 |
Prima cosa grazie a tutti per le risposte. Premetto che so poco o nulla di database giusto le basi, e di conseguenza risolvere il problema in tempi brevi è quasi impossibile per me. Io pensavo di procedere in questo modo: creare le tabelle: 1) tabella tag (id,tag ) con indice id. 2) tabella dati(id,dati) con indice id 3) tabella tag_dati(id_tag,id_dati) con indice id_tag Ma per la query di selezione sono in alto mare. In pratica dovrei selezionare tutti i record della tabella dati con i tag selezionati. I tag potrebbero essere più di uno e i record non dovrebbero ripetersi, di conseguenza come dovrei implementare la query? La query è molto complessa?
[toc] | [prev] | [next] | [standalone]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2016-02-23 14:16 +0000 |
| Message-ID | <dj37tuFh0uvU1@mid.individual.net> |
| In reply to | #20408 |
On 23/02/2016 12:53, Franco Af wrote: > 1) tabella tag (id,tag ) con indice id. > 2) tabella dati(id,dati) con indice id > 3) tabella tag_dati(id_tag,id_dati) con indice id_tag > Ma per la query di selezione sono in alto mare. E come te tanti altri, fidati. :) > In pratica dovrei selezionare tutti i record della tabella dati con i > tag selezionati. Qualcosa tipo (vado a braccio, magari qualcuno mi corregge se sbaglio) select dati.*, group_concat(tag.tag separator ',') as tags from dati left join tag_dati on (dati.id = tag_dati.id_dati) left join tag on (tag.id = tag_dati.id_tag) group by tag.tag Siccome MySQL dà per scontato che la gente usi DB piccoli, il limite di caratteri per group_concat è di 1024, quindi devi ricordarti di lanciare, subito dopo la connessione a MySQL, una query che faccia set group_concat_max_len 1000000 (che setta il limite a 1 milione di caratteri), o qualcosa di simile dipendentemente da quanti tag e quanto lunghi pensi di avere nei risultati. Questo presuppone che i tuoi tag non abbiano la virgola nel nome, e puoi esplodere il campo "tags" nei risultati tramite, appunto, explode() in PHP. Bye.
[toc] | [prev] | [standalone]
Back to top | Article view | it.comp.www.php
csiph-web