Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max mette un pannello IPS da 13 pollici con risoluzione 2,5K e refresh a 120 Hz davanti a una batteria da 10.100 mAh e a quattro altoparlanti. Il listino parte da 399,90 euro, per un progetto molto chiaro e ambizioso: schermo ampio, buon audio e giornate lontano dalla presa, a un prezzo che non pesa sul portafoglio
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Le Jabra Evolve3 85 non sono semplicemente cuffie Bluetooth con cancellazione del rumore. Sono un dispositivo professionale pensato per chi trascorre gran parte della giornata in riunione, al telefono o davanti a un assistente basato sull'intelligenza artificiale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-11-2015, 11:59   #1
_Mara_
Junior Member
 
Iscritto dal: Apr 2015
Messaggi: 15
Struttura database: dubbio su relazioni

Buongiorno a tutti,
ho 2 tabelle: 'Manager' e 'Agenti' (ciascuno di questi fa riferimento a un determinato manager) legate nel modo seguente:
SELECT * FROM Agenti INNER JOIN Manager ON Agenti.fk_manager = Manager.pk_manager
Struttura
[Manager]
id_manager
(...)

[Agenti]
id_agente
fk_manager
(...)

Ora devo tenere conto anche delle vendite di ciascuno di loro quindi pensavo 2 possibili strade:
Aggiungo nelle rispettive tabelle un campo 'numero_vendite' (datatype: int)
oppure
creo tabella 'Vendite' dove inserirò campo numerico e un generico campo persona dove inserisco id_manager o fk_agente?

Ultimo dubbio: nel primo caso se mi chiedesseo uno storico degli aggiornamenti del numero vendite come potrei fare?

Grazie
Mara
_Mara_ è offline   Rispondi citando il messaggio o parte di esso
Old 09-11-2015, 15:31   #2
-MiStO-
Senior Member
 
Iscritto dal: May 2005
Città: Trieste
Messaggi: 2288
ho qualche dubbio: le vendite le fanno solo gli agenti o anche i manager?
perchè vedo che vorresti inserire nell ipotetica tabella vendite o l'id dell'agente o quello del manager...

num. vendite concettualmente non è un attributo di agente quindi per me è sbagliato modellarlo all interno della tabella agente

in ogni caso, a mio modo di vedere la soluzione piu pulita è fare una tabella vendite separata, contenente tutti i dati relativi alla singola vendita, tra cui suppongo importo e data (fondamentale per poter pensare ad uno storico) e con chiave esterna l'id dell'agente che l'ha effettuata.

lo storico in questo modo ti viene "gratis": query su vendite per data e via felice

sul tuo dubbio: devi per forza avere una data a cui fare riferimento per avere uno storico, quindi agente dovrebbe avere due nuovi campi ad esempio "num vendite" e "anno vendite"(o mese/anno a seconda del dettaglio che ti serve), ma francamente lo trovo brutto perchè duplicheresti gli agenti per ogni nuova entry di vendita (num vendite, data)
__________________
neo mini v2 / asus strix z490i / 10600k@? / uh12s / rx6700xt / 32gb ddr4@3200 / sandisk 250 + asenno 1tb / lenovo g34w
trattative concluse : tante...


Ultima modifica di -MiStO- : 09-11-2015 alle 15:36.
-MiStO- è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2015, 09:46   #3
_Mara_
Junior Member
 
Iscritto dal: Apr 2015
Messaggi: 15
Quote:
Originariamente inviato da -MiStO- Guarda i messaggi
ho qualche dubbio: le vendite le fanno solo gli agenti o anche i manager?
perchè vedo che vorresti inserire nell ipotetica tabella vendite o l'id dell'agente o quello del manager...
Esatto, sia manager che agenti fanno N vendite per cui devo tenere traccia dei valori.
Infatti pensavo alla tabella 'Vendite' dove in un generico campo 'id_persona' inserisco id_venditore oppure fk_agente con i suoi attributi.

Non l'avevo scritto ma avevo pensato al discorso data per poi gestire lo storico... grazie del suggerimento :-)

Grazie
Mara
_Mara_ è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2015, 11:19   #4
_Mara_
Junior Member
 
Iscritto dal: Apr 2015
Messaggi: 15
Quote:
Originariamente inviato da -MiStO- Guarda i messaggi

in ogni caso, a mio modo di vedere la soluzione piu pulita è fare una tabella vendite separata, contenente tutti i dati relativi alla singola vendita, tra cui suppongo importo e data (fondamentale per poter pensare ad uno storico) e con chiave esterna l'id dell'agente che l'ha effettuata.
Ho un dubbio nella realizzazione:
tab. 'Vendite' (con dati di esempio)
IDvendite | IDpersona |
1 | 1 -- ID di un manager |
2 | 2 -- ID di un agente |
.. | ..
Come faccio a discriminare se l'ID nel campo IDpersona si riferisce a manager o agente?
Lavoro con SQL Server e studio management come tool per creare relazioni e query.

Graficamente posso utilizzare tabella 'Vendite' 2 volte dovendola mettere in relazione sia con id_manager e id_agente?
In pratica: creo 1^ relazione 'Vendite'/'Manager' e poi 2^ relazione 'Vendite_1'/'Agenti': è un'operazione lecita?

Grazie!
Mara
_Mara_ è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2015, 17:13   #5
cdtux
Member
 
L'Avatar di cdtux
 
Iscritto dal: Nov 2015
Messaggi: 67
In una situazione del genere, ho risolto inserendo un campo TIPO nella tabella utente (assegnando ad es. 0 per il manager e 1 per l'agente) per distinguere le varie tipologie.

Non so se è la soluzione migliore, comunque nel mio caso ha funzionato perfettamente.
cdtux è offline   Rispondi citando il messaggio o parte di esso
Old 11-11-2015, 12:44   #6
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
La soluzione è la normalizzazione: crei una tabella "anagrafica" nella quale inserisci tutte le persone indipendentemente dal loro ruolo, in questo modo la tabella vendite potrà referenziare indifferentemente i manager e gli agenti. Per distinguere il ruolo delle persone puoi utilizzare un semplice campo enum nella tabella anagrafica; se i due ruoli necessitano di campi distinti non usare il campo enum, crea invece due tabelle - agenti e manager - con i soli campi differenziati e vi inserisci una relazione con l'anagrafica.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2015, 09:47   #7
-MiStO-
Senior Member
 
Iscritto dal: May 2005
Città: Trieste
Messaggi: 2288
han già detto quasi tutto

la soluzione di cdtux è la più rapida e funzionale se non hai bisogno di altre query

Daniels118 invece propone bene di suddividere ulteriormente la base di dati, più flessibile come soluzione:avere un anagrafica "persona" e le tabelle "agente" e "manager" per discriminare sul tipo ti permette, quasi aggratis aggiungendo la relazione tra agenti e manager, tutta una serie di query come "tutti gli agenti di un manager", "tutte le vendite degli agenti di un manager" ecc ecc

come sempre, dipende dal grado di dettaglio desiderato
__________________
neo mini v2 / asus strix z490i / 10600k@? / uh12s / rx6700xt / 32gb ddr4@3200 / sandisk 250 + asenno 1tb / lenovo g34w
trattative concluse : tante...

-MiStO- è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2015, 10:39   #8
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Aggiungo che, visto che c'era la possibilità che venisse chiesto uno storico, si potrebbe ulteriormente normalizzare la base dati anche nella dimensione del tempo, ovvero trasformare le tabelle agente e manager in un'unica tabella denominata rapporto_di_lavoro, avente i seguenti campi:
- id_anagrafica
- tipo_rapporto (enum: {agente, manager})
- data_inizio_rapporto
- data_fine_rapporto
Invece che referenziare direttamente l'anagrafica, le vendite potrebbero puntare al rapporto di lavoro, in questo modo se una persona cambia ruolo puoi facilmente distinguere se le vendite di quella persona sono state fatte in qualità di manager o di agente e in quale periodo (senza necessariamente escludere la possibilità di avere un campo data_vendita nella tabella vendite). Avere una tabella unica ti consente inoltre di poter aggiungere in futuro eventuali nuovi ruoli senza modificare lo schema del database.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2015, 11:49   #9
_Mara_
Junior Member
 
Iscritto dal: Apr 2015
Messaggi: 15
Preziosissimi!

A presto per altre domande.
Mara
_Mara_ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
Anthropic lancia Fable 5.2 e Mythos 5.2,...
Francia, attacchi hacker ai frigoriferi ...
Huang è solo l'ultimo di una lung...
Elon Musk conferma la fine del Cybertruc...
CrowdStrike acquisisce Fiddler: nasce Fa...
QNAP ES2486AFdc, storage all-flash e sup...
GTA 6, il preload svela i dettagli tecni...
OPPO non si ferma: ufficializzato l'arri...
No, questo non è il nuovo Registro di si...
Ritardi nell'Entry/Exit System europeo, ...
CMF Speaker S: piccolo, originale e con ...
Red Hat mette gli agenti IA al lavoro su...
Claude può sognare: l’IA di Anthropic ri...
Xiaomi Pad 7 12GB/256GB a 324,96€ su Ali...
Fox chiude l'acquisizione di Roku da 22 ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:48.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v