Elenco città / paese predefinito vs inserimento manuale per tabella indirizzi

1

Sto provando a progettare un database per la mia applicazione POS e sono incappato nel tentativo di creare una tabella di indirizzi. Sono confuso se avere tabelle di città e paesi con valori predefiniti e collegare il pk alla tabella degli indirizzi (city_code / country_code) OPPURE avere colonne di città e paesi come stringa e chiedere all'utente di inserire manualmente. Tendo ad avere la lista di città e paesi, ma vedo che molte altre applicazioni non usano questo approccio e consentono all'utente di inserirle manualmente. Qualcuno può illuminarmi?

    
posta Reynaldi 08.11.2016 - 05:48
fonte

3 risposte

2

Per i paesi che puoi consultare per un elenco di valori predefiniti, vengono modificati molto raramente.

Per l'elenco delle città (e in particolare di strade e case) è meglio consentire entrambe. La maggior parte delle volte gli utenti dovrebbero essere in grado di scegliere tra valori esistenti (garantiti per essere validi), ma in alcuni casi limite è richiesto un input libero. Esempi di vita reale:

  1. La persona è ancora registrata a casa che (con l'intera strada) è stata cancellata dai dati gis poiché sono stati demoliti dieci anni fa.
  2. La persona ha il nome di città / strada in un documento scritto con un errore di battitura e hai bisogno che i dati nel sistema corrispondano esattamente.
  3. I tuoi dati gis non sono sufficientemente accurati per avere nomi di tutti i villaggi della piccola provincia di un paese dell'Asia centrale.
  4. Ti è stato dato un contratto per installare l'attrezzatura in una strada che ha appena cambiato nome. Tuttavia non è possibile inserire il contratto poiché i dati gis non sono ancora stati aggiornati.
risposta data 08.11.2016 - 06:51
fonte
0

Non consentire mai all'utente di compilare questi campi di indirizzo in modo assolutamente libero. Finirai con gli stati Alobama, Alabama, Alabama, Allabama, Albama e molti altri che non puoi nemmeno immaginare, invece del valore standard. E avrà bisogno costantemente di una grande quantità di lavoro di amministrazione.

Per alcuni campi che cambiano molto raramente, o per niente, come continenti o paesi o stati interni, usa campi predefiniti. Per quanto riguarda le città, consenti agli utenti di inserire i valori, ma durante il riempimento, mostra tutti i valori con lo stesso inizio, per la scelta.

Anche in questo modo ha problemi - se qualcuno scriverà Derlin al posto di Berlino, verrà identificato e proposto correttamente. Quindi, dovresti pensare a qualche lavoro di amministrazione: qualcuno dovrebbe controllare di tanto in tanto nuove strade e città, trovare per loro l'equivalente corretto e l'app dovrebbe ricordare questa connessione per il futuro e usarle tutte per le proposizioni dei possibili nomi .

E questa non è ancora la fine. Immagina che qualcuno dal tempo di Simferopol / Crimea voglia riempire il suo indirizzo. Metti la sua zona e la città nella lista ucraina, ma sa che vive in Russia e dovrà scriverlo a mano e l'applicazione inizierà a cercare Simferopol in Russia e la creerà lì come una nuova città. E dimostrerai la stessa città di due luoghi separati! Ancora una volta, ha bisogno di un pezzo di interfaccia utente amministratore. Dovrebbe essere possibile unire non solo i nomi delle città, ma la combinazione di nome città + paese.

    
risposta data 08.11.2016 - 09:07
fonte
0

Se hai scelto come targeting un singolo Paese e disponi di una buona e flessibile API di verifica degli indirizzi, potresti riuscire a superare una quantità significativa di convalida prescrittiva. Il fatto che tu stia pensando di usare un codice paese implica che stai considerando la convalida degli indirizzi per più paesi e per più paesi è un problema difficile da fare bene.

Ricordo un discorso che Rasmus Lerdorf ha tenuto durante una conferenza su Linux. Rasmus è nato in Groenlandia e la Groenlandia non è elencato come paese in molte liste (apparentemente) quindi è abituato a hackerare la pagina web, inserire il codice per la Groenlandia, selezionarlo e vedere se può bloccare l'applicazione con dati validi:).

Anch'io sono stato vittima di una convalida dell'indirizzo scritta male, quindi suggerirei di utilizzare una pagina di verifica dell'indirizzo prescrittivo per impostazione predefinita; ma consentire agli utenti di inserire gli indirizzi in testo libero su una pagina separata se il loro indirizzo non "si adatta". In questo modo la maggior parte dei tuoi dati è "buona" e convalidata, ma non perdi le vendite da parte dei clienti con caselle postali o in nuove suddivisioni che non sono ancora state inserite nel set di dati o paesi che non hai acquistato i dati di verifica dell'indirizzo per ancora.

    
risposta data 08.11.2016 - 09:39
fonte