2010-04-14 5 views
1

Je suis en train de construire un CMS qui va organiser un grand nombre de documents communs que mon employeur génère chaque fois que nous recevons une nouvelle commande client. Chaque nouvel ordre de vente obtient un numéro à 5 chiffres (12222,12223,122224, etc ...) mais à l'intérieur, nous avons appliqué une hiérarchie à ces chiffres:Comment structurer des données ... séquentielles ou hiérarchiques?

+ 121XX 
|--01 
|--02 
+ 122XX 
|--22 
|--23 
|--24 

Dans ma table pour les commandes de vente, est-il préférable de utiliser le numéro numérique 5 comme un ID et peupler ou serait-il préférable d'utiliser la structure hiérarchique que nous utilisons en se référant à des emplois dans une conversation régulière? Le seul avantage à ne pas peupler séquentiellement semble être le formatage des données plus tard à mon avis, mais cela ne semble pas une raison suffisante pour faire le travail supplémentaire.

Merci

+5

Il y a un enfer spécial réservé aux personnes qui donnent un sens aux sous-champs dans les identificateurs numériques. –

+0

Vous ne vous attendez vraiment jamais à recevoir un maximum de 99 999 commandes ...? –

Répondre

0

Cela ressemble à un système de organiser les répertoires OS ou les fichiers manila dans les armoires plutôt qu'un modèle de données. La question est donc, quelle est la valeur de cette structure à deux niveaux? Y a-t-il des attributs ou des fonctions rattachés à la tranche supérieure (121XX, etc.)? Sinon, cela devient un simple problème d'affichage et devrait être traité comme tel. D'autre part, je ne vois pas vraiment de mal à implémenter (121XX, 01) comme une clé métier composite et à utiliser une clé de substitution comme clé primaire. Il y a un hic à surveiller: si les ventes décrochent, vous pouvez atteindre 100K commandes, à quel point le numéro de commande cliquera sur six chiffres. Dans la plupart des variantes de la base de données, l'ordre de tri naturel serait:

100XX 
1000XX 
101XX 
0

« Il y a un enfer spécial réservé aux personnes qui donnent un sens à des sous-champs identifiants numériques. »

Bien que je puisse certainement apprécier et apprécier cette remarque, je me sens obligé d'ajouter que si l'entreprise est telle que cela se trouve être le système de numérotation utilisé pour les commandes, et s'il s'avère que business donne un sens aux sous-champs, alors les informaticiens qui implémentent le système automatisé supportant cette activité n'ont plus guère d'autre choix que de passer par ce système de numérotation.

(Ces gens IT pourraient mettre en évidence les inconvénients de ces systèmes, mais il ne se rapporte pas aux gens de dicter ce que les choses d'affaires devrait et ne devrait pas ressembler.)

+0

Je ne me suis jamais considéré comme un «informaticien», mais en tant qu'analyste de systèmes, j'ai souvent dû dire à l'entreprise que leurs systèmes manuels ne pouvaient pas être informatisés sans changements significatifs de leurs pratiques - c'est pour cela que je suis payé. –

1

Vous devriez certainement utiliser l'ID à 5 chiffres comme clé primaire. Parfois, la réponse évidente est la simple.

Questions connexes