2010-03-12 5 views
1

Quelle est la meilleure pratique ou les méthodes bien connues pour implémenter des numéros de séquence pour des entités commerciales telles que des factures, des bons de commande, des numéros de travail, etc.? Je veux être en mesure d'enregistrer la dernière valeur dans la base de données et être en mesure de le définir par programme. Est-il correct d'utiliser une table dans ce but avec un tuple SEQUENCE_NAME, SEQUENCE_NUMBER? Je sais que certaines bases de données ont un type de séquence de première classe, mais d'autres (par exemple, MySQL) ne le font pas, donc ce n'est pas quelque chose que je veux compter. Si une table est utilisée pour contenir ces séquences, quelle est la bonne façon de les obtenir et de les incrémenter de manière synchronisée pour éviter toute incohérence de données?Numéros de séquence bonne pratique

+2

Certaines bases de données (SQL Server, par exemple) n'ont pas de SEQUENCE comme concept de première classe, mais ont des colonnes "identity", qui donnent le même effet dans ce contexte. –

+1

SQL Server 2012 a ajouté la prise en charge de SEQUENCE https://msdn.microsoft.com/fr-fr/library/ff878091.aspx – janv8000

Répondre

0

Si l'objectif principal est d'être indépendant du fournisseur, alors utiliser une table de séquence comme celle que vous avez proposée est probablement l'approche la plus vanille. Vous pouvez utiliser le verrouillage de ligne, soit avec des verrous explicites, soit Sélectionner ... Pour Mise à jour en fonction de votre fournisseur, pour sérialiser l'accès à la table.

Questions connexes