2009-05-20 7 views
0

Je me demandais quelle était la meilleure façon de stocker les requêtes utilisateur corrélées avec les horodatages dans MySQL. Disons que j'ai deux entrées, "requête" d'un utilisateur et "horodatage" ...Indexation de requête MySQL avec structure d'horodatage

Je pourrais créer une table MySQL avec des champs (id, query, count, timestamp_list), où:

id est- identifiant unique de la requête,
query est la chaîne de requête littérale,
count est le (constamment mis à jour) nombre de fois que la requête est entrée, et
timestamp_list est un LONGTEXT ou quelque chose avec une liste de fois cette requête était cherché.

Existe-t-il un meilleur moyen de corréler ces derniers en utilisant l'indexation que je ne connais pas? Il semble que stocker une liste d'horodatages dans un LONGTEXT est stupide, mais facile; peut-être que je devrais créer une table séparée comme:

id
query_id (corrèle à id dans le premier tableau)
timestamp

Et je peux joindre les résultats avec la première table. Des pensées? Merci!

Répondre

3

Si vous devez enregistrer l'horodatage de chaque requête a été effectuée, je vous suggère de vous avez 2 tables:

tbl_queries 
    - id  INT 
    - query VARCHAR 

tbl_queries_performed 
    - id   INT AUTOINCREMENT 
    - query_id INT 
    - timestamp CURRENT_TIMESTAMP 

Chaque fois que vous souhaitez enregistrer une requête, vérifier si elle est dans tbl_queries déjà et enregistrer une entrée dans tbl_queries_performed avec le query_id respectivement

+0

Merci beaucoup! Cela clarifie les choses. – ash