2013-05-16 5 views
0

Je construis un site de commerce électronique en utilisant PHP (Codeigniter) et MySQL.Mises à jour quotidiennes du serveur SQL à MySQL

La table des produits possède un champ de stock qui doit être mis à jour quotidiennement (peut-être plusieurs fois par jour). La source de ces mises à jour est une table SQL Server locale (utilisée par SAP B1).

Je devrais dire que je n'ai aucun moyen de savoir quels éléments ont été modifiés, je dois donc passer en revue toute la table des produits (des dizaines de milliers de lignes).

Voilà comment je pensais que je ferais:

  1. émettez une requête planifiée sur le serveur SQL, pour créer un fichier texte de le code article et le niveau de stock. (terminé)
  2. Émettre une commande ftp planifiée pour télécharger ce fichier texte sur le serveur Web (terminé)
  3. Analyser le fichier texte téléchargé à l'aide de la fonction codeigniter, pour créer un tableau à utiliser pour la mise à jour par lots (ne pas avoir terminé) , mais semble assez facile).

Mes questions sont les suivantes:

  1. Vais-je dans la bonne direction ici? Y a-t-il une meilleure façon de le faire? Suis-je en train de risquer des problèmes de performance ici? (Je veux dire, ce travail va-t-il interférer avec les performances de mon site web? Combien de temps faut-il pour exécuter plusieurs milliers de lignes?)
  2. Comment programmer la fonction codeigniter (item 3 ci-dessus)? Utilisez simplement un planificateur sur n'importe quelle machine locale qui appelle ma fonction php via son URL (mywebsite.com/my_update_function)?
+0

Je suppose qu'il pourrait y en avoir au moins un dans la table SQL Server quand l'enregistrement a été modifié, Et quand vous tronquez toute la table dans votre base de données MySQL, les utilisateurs ne verront aucun produit, ce qui sera embarrassant pour un site de commerce électronique. Donc, ma suggestion est juste créer un code PHP sur votre serveur qui crée une table temporaire avec les enregistrements mis à jour depuis la dernière mise à jour de votre serveur SQL (conservez une ligne de table dans une table de paramètres de votre base MySQL Serveur SQL). et des enregistrements dans votre onglet mysql et insem ou même vous pouvez les mettre à jour. –

+0

et ajouter un planificateur sur le fichier php. Je ne suis pas sûr du code Igniter, mais vous pouvez le faire individuellement, pas besoin d'avoir cette interface du tout. –

Répondre

0

Nous pouvons utiliser des déclencheurs directement sur votre table SAP B1 pour votre cas .. Cela peut résoudre votre problème. Mais il y a un problème avec SAP B1. Si nous utilisons Triggers sur des tables système ou sur UDT de SAP B1, il y aura un problème lors de la mise à niveau de SAP B1 vers des niveaux supérieurs. prenez soin de cela et continuez.

Questions connexes