DOMANDA Aiutino DB Mysql?

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

Mantegnous

Utente Attivo
Messaggi
843
Reazioni
42
Punteggio
67
Dovrei creare un database che abbia le seguenti tabelle:

Tecnico
Riparazione
Cliente

In poche parole devo realizzare un sito dove inserisco eventuali riparazioni effettuati ad un cliente da uno specifico tecnico.
Nulla di complesso a dirla cosi, ho una vaga idea:

Tecnico----

ID_Tecnico Smallint/int o qualcosa di simile, non più di 10 tecnici Primary Key
Nome varchar(25)
Cognome varchar (25)

Riparazione---

ID_Riparazione

Cliente

ID_cliente
Nome
Cognome
Cod_fisc
Telefono

cos'altro potrei aggiungere? So che dovrei usare chiavi esterni e primarie, potete darmi una mano?
 
Dovrei creare un database che abbia le seguenti tabelle:

Tecnico
Riparazione
Cliente

In poche parole devo realizzare un sito dove inserisco eventuali riparazioni effettuati ad un cliente da uno specifico tecnico.
Nulla di complesso a dirla cosi, ho una vaga idea:

Tecnico----

ID_Tecnico Smallint/int o qualcosa di simile, non più di 10 tecnici Primary Key
Nome varchar(25)
Cognome varchar (25)

Riparazione---

ID_Riparazione

Cliente

ID_cliente
Nome
Cognome
Cod_fisc
Telefono

cos'altro potrei aggiungere? So che dovrei usare chiavi esterni e primarie, potete darmi una mano?


sicuro serve una chiave esterna in riparazione inserendo l'id del tecnico che la svolta.
Poi in riparazione aggiungerei un campo descrizione nvarchar perchè le riparazioni possono essere diverse
e anche l'id cliente perchè la riparazione viene eseguita su qualcosa che un cliente ti porta.
primary key il codice fiscale nel cliente perchè quello è univoco della persona.

poi come id puoi mettere int_autoincrement
 
sicuro serve una chiave esterna in riparazione inserendo l'id del tecnico che la svolta.
Poi in riparazione aggiungerei un campo descrizione nvarchar perchè le riparazioni possono essere diverse
e anche l'id cliente perchè la riparazione viene eseguita su qualcosa che un cliente ti porta.
primary key il codice fiscale nel cliente perchè quello è univoco della persona.

poi come id puoi mettere int_autoincrement

Quindi,


Tecnico----

ID_Tecnico Primary Key
Nome
Cognome

Riparazione---

ID_Riparazione
Riparato_Da Foreign Key (ID_Tecnico)
Riparato_A Foreign Key (ID_Cliente)
Descrizione

Cliente------

ID_cliente
Nome
Cognome
Cod_fisc Primary Key
Telefono

Abbiamo due chiavi esterne nella tabella riparazioni? O ne basta semplicemente una?
 
ne servono due...la riparazione ha una doppia corrispondenza...
1 con il tecnico che l'ha eseguita
2 con il cliente che l'ha ricevuta
 
ne servono due...la riparazione ha una doppia corrispondenza...
1 con il tecnico che l'ha eseguita
2 con il cliente che l'ha ricevuta

Bene allora ho fatto correttamente.

Ho creato una pagina php dove accede a mysql e al database interessato.

Ho inserito come variabili i campi della tabelle che prenderanno i dati dal form html posto in una pagina index.

Appena posso ti carico il codice.

Un altra cosa, devo fare na specie di limitazione all inserimento dei dati mediante il form, tipo non più di 30 caratteri o non funzionerà
 
Bene allora ho fatto correttamente.

Ho creato una pagina php dove accede a mysql e al database interessato.

Ho inserito come variabili i campi della tabelle che prenderanno i dati dal form html posto in una pagina index.

Appena posso ti carico il codice.

Un altra cosa, devo fare na specie di limitazione all inserimento dei dati mediante il form, tipo non più di 30 caratteri o non funzionerà

i campi varchar li puoi definire tu...puoi dare anche varchar(255) cosi hai 255 caratteri a disposizione.
 
i campi varchar li puoi definire tu...puoi dare anche varchar(255) cosi hai 255 caratteri a disposizione.

Si non mi riferivo a essi ma al codice html del form che invierà i dati, se metto valori fissi e i dati nel form li superano.. che si fa? Si può fare qualche condizione?
 
Si non mi riferivo a essi ma al codice html del form che invierà i dati, se metto valori fissi e i dati nel form li superano.. che si fa? Si può fare qualche condizione?

fai un campo maxlength e te lo gestisci via script javascript con una function.

Codice:
<script type=text/javascript>
function checkLength{
if(document.getelementbyid("nomecampo").value > 30){
        document.getelementbyid("Placeholder").innerHTML = "Hai inserito piu di 30 campi";
}
}

puoi scrivere una funzioncina tipo questa e richiarmarla nella tua submit(bottone) facendo onclick="checkLength()"
 
@Skills07
Come mai metteresti una funzione JavaScript? Se mette maxlength non si verificherà mai la condizione contenuta nell'if...
 
@Skills07
Come mai metteresti una funzione JavaScript? Se mette maxlength non si verificherà mai la condizione contenuta nell'if...

appunto o usa la funzione javascript per controllare o da il maxlength....
forse ho scritto veloce e si è capito male...

puo fare o uno o l'altro
 
Ah okay, allora forse ti sei confuso perché hai scritto "fai un campo con maxlength e te lo gestisci via JavaScript". @Mantegnous
Ricapitolando: o fai un campo che ha come attributo maxlength = n (dove n sta per il numero massimo di caratteri che vuoi ammettere), o fai un campo dove l'utente può sì scrivere quanto vuole, ma poi gli applichi un controllo formale con JavaScript come quello che ti ha correttamente suggerito @Skills07. Praticamente o blocchi l'eventuale anomalia direttamente da HTML, o gestisci l'evenienza tramite JavaScript.
Io ti consiglio la prima opzione. La trovo anche più logica.
 
Ah okay, allora forse ti sei confuso perché hai scritto "fai un campo con maxlength e te lo gestisci via JavaScript". @Mantegnous
Ricapitolando: o fai un campo che ha come attributo maxlength = n (dove n sta per il numero massimo di caratteri che vuoi ammettere), o fai un campo dove l'utente può sì scrivere quanto vuole, ma poi gli applichi un controllo formale con JavaScript come quello che ti ha correttamente suggerito @Skills07. Praticamente o blocchi l'eventuale anomalia direttamente da HTML, o gestisci l'evenienza tramite JavaScript.
Io ti consiglio la prima opzione. La trovo anche più logica.

Lo stesso si può fare per l id? Ovvero nel campo dove si scrivono i numeri, come si evita la scrittura di lettere?
 
L'ID deve essere una chiave primaria che si incrementa da sola, non viene settata dall'utente. Non è un campo utile ai fini della rappresentazione degli elementi, serve solo come identificativo (come ad esempio il codice fiscale per una persona).
 
Lo stesso si può fare per l id? Ovvero nel campo dove si scrivono i numeri, come si evita la scrittura di lettere?

come ti ha suggerito Javaprogrammer... l'id essendo autoincrement non viene visualizzato dall'utente...
tu dovrai solo inserire i campi che ti servono
 
Ad ogni modo, ti rispondo ugualmente, perché potresti avere comunque un campo (che non sarà l'ID) dove l'utente dovrà inserire un valore puramente numerico.
Vale lo stesso discorso di prima, ossia puoi prevenire il problema da HTML o gestirlo con JavaScript. Con una non sottile differenza però: la prevenzione da HTML funziona solo nei browser che supportano HTML5.
Va da sé che, in quest'altro caso, è dunque preferibile lasciare l'input libero e gestire eventuali errori tramite JavaScript nel momento in cui l'utente prova ad effettuare il salvataggio dei dati.

Puoi fare così:

HTML
Codice:
<input type="text" id="camponumerico" name="iltuocamponumerico">

JavaScript
Codice:
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
function validaIlTuoCampoNumerico() {
if (!isNumeric(document.getElementById("camponumerico").value)) {
// Scrivi qui il comportamento che vuoi che l'applicazione abbia se l'utente inserisce un valore non numerico
}
}

Nel tuo codice HTML, dovrai assegnare al bottone che scatena il salvataggio dei dati il codice onclick="validaIlTuoCampoNumerico()".
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top