2010-07-29 4 views
2

Quel est le meilleur mécanisme de stockage (de la vue de la base de données à utiliser et du système de stockage de tous les enregistrements) pour un système construit pour suivre les changements d'enregistrements whois? Le programme sera exécuté une fois par jour et une piste devrait être gardée de ce que la valeur précédente était et quelle est la nouvelle valeur.Système de suivi des modifications dans les enregistrements whois

Suggestions sur la base de données et réflexions sur la façon de stocker les différents enregistrements/champs afin que les données ne sont pas redondantes/dupliqués


(Ajouté) Mes pensées sur un mécanisme pour stocker des données

Exemple de cas montrant la vente d'un domaine "sample.com" de personA à personB sur 1/1/2010

Table_DomainNames 
DomainId | DomainName 
1   example.com 
2   sample.com 

Table_ChangeTrack 
DomainId | DateTime | RegistrarId | RegistrantId | (others) 
2   1/1/2009   1    1 
2   1/1/2010   2    2 

Table_Registrars 
RegistrarId | RegistrarName 
1    GoDaddy 
2    1&1 

Table_Registrants 
RegistrantId | RegistrantName 
1    PersonA 
2    PersonB 

Toutes les tables sont "append-only". Ce modèle a-t-il un sens? Table_ChangeTrack ne doit être "ajouté à" que s'il y a des changements dans l'un des champs surveillés.

Existe-t-il un moyen de rendre ceci plus efficace/plus strict du point de vue de la taille?

Répondre

2

Les données primaires sont l'existence ou les modifications apportées aux enregistrements whois. Cela donne à penser que votre table primaire soit:

<id, domain, effective_date, detail_id> 

où les points detail_id aux données whois réelles, elle-même probablement normalisé:

<detail_id, registrar_id, admin_id, tech_id, ...> 

Mais notent que la plupart des bureaux d'enregistrement considèrent l'information leur propriété (si elle est ou non) et des avertissements comme:

CONDITIONS d'UTILISATION: Vous n'êtes pas autorisé à accéder ou à interroger notre base de données WHOIS par l'u se de électroniques des processus qui sont à haut volume et automatisé, sauf que cela est raisonnablement nécessaire pour enregistrer des noms de domaine ou modifier des enregistrements existants ...

à partir duquel vous pouvez vous attendre à ce qu'ils vous couper si vous lire trop leurs bases de données.

+0

J'ai obtenu des autorisations pour l'utilisation automatisée limitée de leur système ...Au lieu de le stocker par "detail_id", ne serait-il pas plus efficace de le stocker avec l'une des valeurs "X" pour registry_id, admin_id, etc ... où ces nombres proviennent d'une autre table elle-même. par exemple: table_registrar (registrar_id, registrar_name)? – DrMHC

+0

Je ne suis pas sûr de comprendre votre commentaire. Le nom de domaine est la clé primaire et toutes les informations sont subordonnées (dépendantes de) à cette clé. Puisqu'il est possible (?) Pour un nom de domaine de changer de registrar, la structure que j'ai décrite rend le troisième sens normal où il y aura de nombreuses références à registrar_id, admin_id sera égal à tech_id, etc. – msw

+0

Umm ... ajouter des informations dans le question principale pour expliquer mieux – DrMHC

0

Vous pourriez

  • magasin la somme de contrôle d'une forme normalisée des champs de données d'enregistrement whois aux fins de comparaison.
  • stocker la version originale et la version actuelle des données (éventuellement sous forme compressée), si nécessaire.
  • Enregistrer les différences de chaque modification détectée (éventuellement sous forme compressée), si nécessaire.

Cela ressemble beaucoup au fonctionnement des systèmes de sauvegarde incrémentiels. Peut-être que vous pouvez obtenir plus d'inspiration à partir de là.

0

Vous pouvez écrire vbscript dans un fichier Excel pour sortir et interroger une page Web (dans ce cas, l'URL 'whois' particulière pour un site spécifique), puis stocker les résultats dans une feuille de calcul dans Excel.

Questions connexes