2010-02-11 6 views
3

Je crée un simple Changelog lib dans CodeIgniter qui enregistrera un message chaque fois que quelqu'un ajoute, supprime, modifie ou publie un article de blog. Je vais enregistrer les messages dans les fichiers par lots de 300. Donc chaque 301ème message ira dans un nouveau fichier. Au début, je voulais écrire les logs dans de simples fichiers .log mais ensuite j'ai eu l'idée de styliser la chose et j'ai dû séparer chaque "attribut" de chaque message (ie: l'utilisateur, le message, le type de log , etc.). Donc, les fichiers .log sont hors de question car l'extraction de l'info serait pénible.Fichier de modification: YAML vs JSON vs CSV

Quel est le format le plus approprié pour une telle tâche? J'ai déjà exclu MySQL et XML car ils sont trop lourds (d'autant plus que les fichiers journaux ne dépasseront pas (environ) 300 lignes). J'ai suggéré YAML vs JSON vs CSV dans le titre, mais existe-t-il encore une meilleure alternative?

Répondre

2

Je dirais que tout dépend de ce que vous avez besoin/voulez faire avec ces fichiers:

  • CSV a un avantage: il peut être importé dans Excel et les applications - qui pourrait être utile dans certaines situations, pour faire des rapports à un supérieur, par exemple
  • JSON est lisible dans de nombreuses langues, y compris Javascript; mais pas facile à lire par un être humain; et plus difficile à modifier "à la main"
  • Et YAML est assez facile à lire; pas difficile à modifier à la main; mais pas sûr de la disponibilité des bibliothèques pour le lire en plusieurs langues.


Si vous êtes dans aucune de ces situations:

  • doit être lisible
    • par un être humain
    • dans plusieurs langages de programmation
  • facile à modifier
    • mêmes notes

alors je suppose que les trois formats seront OK ^^


Sans savoir plus, j'irais avec format CSV (pour l'importation de substance Excel), ou JSON (pour la raison de la portabilité).

+0

Merci pour votre réponse, vos réflexions étaient très intéressantes.Selon le contexte, je pense que JSON est le format que je choisirai. –

1

je suppose que CSV serait plus facile en raison de deux raisons:

  • compter combien de journaux sont déjà dans la liste (il suffit de compter le nombre de lignes)
  • ajouter des choses à un objet JSON peut » Pour ce faire, il suffit d'ajouter des données

Bien sûr, si vous choisissez de créer un objet JSON distinct pour chaque élément de journal et que vous le placez sur une ligne distincte, ce n'est pas un problème.

+0

Vous n'allez pas lire/écrire manuellement JSON (ou YAML) - vous allez utiliser une bibliothèque. Et puis c'est juste une question de 'data <- read_json (json); longueur (données); data + = more_data; json_write (data) '... – naught101