Come strutturare il programma GUI con un database

0

Ho una discreta esperienza nel web design e nella programmazione, C, C ++ e un po 'di java (l'ho usato per costruire una piccola GUI).

Sto provando a lavorare con Python e mi trovo ad affrontare alcuni problemi di strutturazione tecnica.

Ecco una descrizione di ciò che voglio fare

1. Voglio creare un'applicazione standalone che verrà distribuita in un'azienda con diversi computer connessi su una rete locale.

2. L'applicazione deve comunicare con un database. (Un database condiviso da applicazioni in tutti i computer)

3. solo uno dei computer avrà il database installato (più simile alla relazione del server client nel web)

Quindi ecco la mia domanda

1. L'applicazione può essere scritta in modo tale che quando viene installata su un nuovo computer, installa il database (mysql o sqlite, ecc.) senza la necessità di installare prima il database?

2. E 'possibile che il contenuto del database sia visibile solo dall'applicazione?

3. Sono un po 'incerto se la struttura come sopra descritta è il modo migliore per andare. Per favore mi consigli su questo.

Sarei lieto se indicassi una documentazione online sulla strutturazione di applicazioni standalone.

Grazie per l'aiuto

    
posta gentleoyink 25.02.2015 - 01:31
fonte

1 risposta

2
... when it is installed on a new computer, it installs the database 
(mysql or sqlite etc) without the need to first install database?

Sì, ma suggerirei, non farlo.

Installa il database separatamente (e solo una volta) su una macchina conosciuta. Quindi fornire il nome / I.P.Address di quella macchina quando si installano tutte le applicazioni client .

Se non lo fai, corri il rischio di avere il database creato sul portatile del capo e lui è fuori dall'ufficio per la maggior parte del tempo!

... is it possible that the content of the database can only be seen by the application?

Sì, fino a un certo punto.

È possibile impostare la sicurezza del database in modo che l'applicazione utilizzi un account e credenziali predefiniti di cui gli utenti non vengono mai informati. Se si desidera che gli utenti dispongano di "account" all'interno del database, impostarli utilizzando le tabelle proprie , non come account di database effettivi. Semplicemente rende tutto più semplice - le autorizzazioni per i database vengono assegnate solo all'account "application", non ai singoli utenti, il che significa che non ci sono overhead di gestire tutti quegli account utente e, se vuoi che questi utenti abbiano password, quindi sempre hanno un meccanismo di resettaggio della password funzionante (come funziona se un utente non riesce a connettersi al database per reimpostare la password perché ha dimenticato la sua password?).

Ma, come sempre, la sicurezza è solo "così buona"; tutto ciò che può essere costruito può essere rotto.

Tutto ciò detto, molte applicazioni client con un unico database centrale sono decisamente la strada da percorrere.

    
risposta data 25.02.2015 - 13:32
fonte

Leggi altre domande sui tag