Implicazioni di supertipo e sottotipo
-
12-11-2019 - |
Domanda
È negativo implementare SuperType e sottotipo su tutti i dati in un database? Ho bisogno di qualche consiglio su questo prima di passare a questa direzione ...
Per esempio,
Ho queste tabelle come oggetti e sono correlate,
users
pages
images
entities
tavolo come il supertipo
entity_id entity_type
1 page
2 page
3 user
4 user
5 image
6 image
users
tavolo
user_id entity_id
1 3
2 4
pages
tavolo
page_id entity_id
1 1
2 2
images
tavolo
image_id entity_id
1 5
2 6
Ecco il tavolo per carta geografica images
tavolo con entities
Tabella perché alcune immagini appartengono a determinate pagina (forse ai post del blog, ecc. In futuro),
map_entity_image
tavolo
entity_id image_id
1 1
1 2
Quindi, inserirò una fila nel entities
Tabella quando ho una pagina, un'immagine, un utente, ecc. Da creare.
Alla fine della giornata le file in questi tavoli aumenteranno in gran numero. Quindi la mia preoccupazione è che può essere poliziotto con un gran numero di righe? Questo database diventerà lento e più lento nel tempo?
Dopotutto, sono una struttura cattiva?
O forse sto facendo il supertipo/ sottotipo in modo errato?
modificare:
Penso che la entity
dovrebbe avere solo questi dati,
entity_id entity_type
1 page
2 page
A meno che non voglia allegare le immagini a utenti, ecc. Quindi dovrebbe essere così,
entity_id entity_type
1 page
2 page
3 user
4 user
Forse mi sbaglio ...
MODIFICARE:
Quindi questa è la domanda come scopro quante immagini allegate all'ID pagina 1,
SELECT E.*, P.*, X.*,C.*
FROM entities E
LEFT JOIN pages P ON (P.entity_id = E.entity_id)
LEFT JOIN map_entities_images X ON (X.entity_id = E.entity_id)
LEFT JOIN images C ON (C.image_id = X.image_id)
WHERE P.page_id = 1
ritorna 2 immagini.
Nessuna soluzione corretta