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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top