Tabella flessibile o più tabelle?

1

Nella mia applicazione, ho molte cose che usano le immagini in modi diversi. Ad esempio, un prodotto può avere un logo e molti screenshot, un utente può avere un'immagine del profilo e un'azienda può avere un logo.

Potrei usare due strategie diverse per tabelle flessibili o tabelle.

Le tabelle flessibili sarebbero:

Immagini

  • id
  • relation_id
  • related_table
  • nome_file

Meta immagine

  • id
  • image_id
  • tasto
  • Valore

Potrebbero apparire molte tabelle:

Logo del prodotto

  • id
  • nome_file
  • product_id

Immagini

  • id
  • filename
  • product_id
  • display_position

Immagini del profilo

  • id
  • filename
  • user_id

ecc.

Quindi mi piacerebbe sapere dove è l'equilibrio tra flessibilità e normalizzazione? o c'è qualcosa che mi manca?

Grazie.

    
posta Christian Pavilonis 08.05.2018 - 01:38
fonte

1 risposta

1

In termini di rendimento, credo che entrambi i casi avrebbero lo stesso risultato. Naturalmente, tutto dipende dal fatto che tu faccia il giusto uso degli indici e delle relazioni. Ma tenendo conto del fatto che la cura di cui sopra è già stata presa, vorrei inserire, in una visione globale, tre livelli:

  1. Tabelle principali: prodotto, utente e azienda
  2. Tabella di connessione
  3. Tabella delle immagini

Quindi penso che sia più simile alla tua prima scelta dove "Immagini" sarebbe la tabella delle connessioni tra le tabelle principali e le immagini e "Meta immagine" sarebbe la tabella delle immagini stessa.

In questo modo, le tabelle principali possono anche riguardare la stessa immagine, evitando la duplicazione dell'immagine.

Penso solo che il campo "file_name" dovrebbe essere nella tabella "Immagini Meta" e non nella tabella di connessione "Immagini".

    
risposta data 08.05.2018 - 05:09
fonte

Leggi altre domande sui tag