Come progettare il database per mantenere l'elenco dei membri speciali tra tutti i membri? [chiuso]

-2

Voglio progettare Database che funzioni come spiegato di seguito.

  1. Abbiamo alcuni membri e sono elencati in molte categorie.
  2. Tra i membri, alcuni hanno privilegi speciali.

  3. Abbiamo una tabella meme

  4. Abbiamo una tabella delle categorie

  5. Relazione della categoria membro mantenuta nella tabella separata

  6. Relazione privilegio tra utenti mantenuta nella tabella separata

Ora vogliamo recuperare membri per la categoria specifica, questo può essere ottenuto accedendo alla tabella Categorie di membri , ma nel mio caso voglio anche conoscere il privilegio, per ottenere una cosa che posso fare è

Confronta Il risultato (risultato della ricerca- categoria-membro) con la tabella dei privilegi dei membri e Verifica se il Membro ha o meno il privilegio.

Questo sembra essere OK in generale, ma in questo caso, vogliamo assicurarci che i Membri che hanno privilegi debbano essere inclusi in tutti i risultati, se "Categoria" è collegata al Membro con privilegi.

CASO: 1 Quando faccio una ricerca per membri in una categoria con un limite, ottengo tutti i membri e quindi posso confrontarmi con la tabella Privilege. Questo va bene Caso 2: quando chiedo i membri della categoria con LIMIT, potrei perdere alcuni dei membri che hanno privilegi a causa del limite (come LIMIT 10 .. ecc.) in tal caso non otterrò tutti i membri privilegiati

Come progettare il database in modo da ottenere sempre i membri privilegiati dai quozienti del database rispetto alla categoria

    
posta Sathyam Shivam Sundaram 24.07.2015 - 06:44
fonte

1 risposta

2

Non puoi progettare il tuo database in questo modo, ma puoi scrivere le tue domande (o meglio, progettare la tua applicazione) per gestirle. L'esempio con LIMIT semplicemente non può essere gestito sul database perché non è possibile modificare ciò che LIMIT fa fondamentalmente.

Il tuo esempio sembra strano perché un limite bascialmente significa "dammi solo risultati X". Cosa vuoi fare se ci sono 12 membri privilegiati, 15 membri "ordinari" e LIMIT 10? Restituire tutti i 12 privilegiati e non ordinari? Restituire tutti i membri privilegiati e 10 membri ordinari? Questo è il tipo di decisione che devi prendere nella tua applicazione e gestire tutto in questo modo dall'applicazione, non dal database ...

(In caso contrario, suppongo che potresti scrivere una stored procedure per gestirla e avvolgere la tua logica in questo. Ciò ti lascia con una soluzione solo per database, ma non impedisce a nessuno di interrogare semplicemente i dati)

    
risposta data 24.07.2015 - 09:55
fonte

Leggi altre domande sui tag