2010-06-13 4 views
1

INFORMIX-SE avec ISQL 7.3:Consolidation prêt distinct, des tables et des ventes dans Achat d'une table de transaction

J'ai des tables séparées pour le prêt, achat & transactions de vente. Chaque ligne de table est jointe à ses lignes client respectives par:

customer.id [serial] = loan.foreign_id [entier]; = purchase.foreign_id [entier]; = sale.foreid_id [entier];

Je voudrais consolider les trois tables dans une table appelée "transaction", où une colonne "transaction.trx_type" [char (1)] {L = prêt, P = Achat, Vente S =} identifie le type de transaction. Est-ce une bonne idée ou vaut-il mieux les garder dans des tables séparées? L'espace de stockage n'est pas une préoccupation, je pense que ce serait plus facile de programmation & user = sage à avoir tous les types de transactions sous une table.

Répondre

2

C'est une bonne solution. Vous pouvez également créer trois vues afin que l'accès de base ne change pas. Par ailleurs: C'est une approche typique pour résoudre l'inadéquation de l'impédance relationnelle de l'objet.

Généralement, vous pouvez généraliser le prêt, l'achat et la vente en quelque chose comme: MoneyTransaction. Pour obtenir toutes les informations, vous pouvez faire des jointures, comme vous l'avez fait, ou dégénérer le système entier, comme vous le faites actuellement.

Bonne approche. Je peux vous recommander de lire http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx

2

Oui, d'après mon expérience, c'est une meilleure solution. La plupart des programmes sont plus axés sur les rapports que sur les entrées. Dans ce cas, les vitesses de génération de rapports augmentent considérablement.

0

Pour une raison quelconque, je suis incapable de commenter vos réponses, donc je vais commenter dans cet espace de réponse. @Patrick Sauerl> Création de vues séparées n'est pas nécessaire et même indésirable. C'est le cas d'une application Pawnshop où, par exemple, la marchandise peut être mise en gage et le client peut choisir de convertir le pion en le vendant au prêteur sur gages, qui à son tour peut le vendre à un autre client, le tran type a commencé comme type «L» (prêt), converti en un «P» (achat), converti en un «I» (inventaire), puis converti en un «S» (vente), sous certaines règles, il y a beaucoup de différents ensembles de possibilités. En fonction du type de transaction, je réutilise les mêmes colonnes pour des choses différentes, dans la mesure du possible, par exemple: pour les prêts, transaction.main_amount est utilisé pour le Principal; Pour l'achat, transaction.main_amount est utilisé pour le prix d'achat; Pour la vente, transaction.main_amount est utilisé pour le prix de vente. Je stocke un historique de toutes les transactions précédentes pour la même marchandise car elle se transforme en différents types de transactions.

+0

@Frank - vous ne pouvez pas commenter parce que vous utilisez un de vos nombreux comptes qui a une mauvaise réputation (et vous empêche donc de commenter). Comme vous le voyez, les comptes multiples sont difficiles à gérer et ils sont désapprouvés. Merci de ne pas faire ça. Demandez aux administrateurs de fusionner vos différents comptes. –

+0

@Petrotta - À ma connaissance, je n'ai que deux comptes, Frank Computer & Frank Developer. Je n'ai pas de problème avec ceux-ci étant fusionnés. Je vais même m'inscrire! .. J'ai une adresse e-mail d'affaires Yahoo, mais ne sais pas comment obtenir le OpenID pour cela, si elle existe déjà? –

+0

vous aviez six comptes; un peu nommé "Frank Computer" et un peu nommé "Frank Developer". Ne t'inquiète pas. les administrateurs du site les ont fusionnés.Pour info, si vous voulez utiliser le '@' pour attirer l'attention de quelqu'un dans un commentaire, utilisez la première partie de son nom - @Frank ou @Michael. Le nom de famille ne déclenche pas de notifications. –

Questions connexes