Ho un tavolo chiamato events
dove passano tutte le nuove informazioni. Questa tabella funziona come riferimento per tutte le query per i feed di notizie, quindi gli elementi degli eventi vengono selezionati da lì e le informazioni corrispondenti a quell'evento vengono recuperate dalle tabelle corrette.Come avere ID univoci su due o più tabelle in MySQL?
Ora, ecco il mio problema. Ho E_ID
nella tabella degli eventi che corrisponde all'ID di un evento in una tabella diversa, sia T_ID
per tracks
, e così via ... Questi ID potrebbero essere gli stessi quindi per il momento sono solo ha utilizzato un diverso valore auto_increment per ogni tabella, pertanto status
è stato avviato su 500 tracks
su 0 ecc. Ovviamente, non voglio farlo perché non ho ancora idea di quale tabella avrà il maggior numero di dati al suo interno. Assumerei che lo status
supererebbe rapidamente lo tracks
.
Le informazioni vengono inserite nella tabella event
con trigger. Ecco un esempio di uno;
BEGIN
INSERT INTO events (action, E_ID, ID)
VALUES ('has some news.', NEW.S_ID, NEW.ID);
END
che quelli per lui tabella di stato.
C'è un aggiunta a ciò grilletto posso fare per garantire la NEW.S_ID
! = Un E_ID
attualmente in events
e se non cambia il S_ID
conseguenza.
alternativa, c'è qualche tipo di chiave posso utilizzare per fare riferimento eventi quando automatico incrementando il S_ID
modo che il S_ID
non viene incrementato di un valore di E_ID
.
Questi sono i miei pensieri, penso che quest'ultima soluzione sarebbe meglio ma dubito che sia possibile o lo sia ma richiederebbe un'altra tabella di riferimento e sarebbe troppo complessa.
Suggerirei che se hai davvero bisogno di questi, assegni l'id a s un campo di incremento automatico su una tabella e usa il valore da questo come nuovo id quando si popola un campo sulle varie altre tabelle. Tuttavia preferirei avere i campi id sui vari tavoli totalmente indipendenti. – Kickstart