May 25, 2006 at 7:04 pm
I am not much known about making the database .its my first experience .I have done some work but I want that some one check my work .Is it correct or not ? OR its relations and its primary keys are correct .please help me about payment data and check this .Is it payment data is fully normalized or Not?
We make a Point of sale system for a mobiles. it’s a online application that’s keep all records in database.
IS MY PAYMENT PROCESS IS FULLY NORMALIZED ????
In Payment process we make seven tables that’s are our entities in ERD such as
Payment table is the main table and that are linked with other tables.
Some data types are bigint, and varchar
· Payment Table : (mobileNo,customerNo,paymentId,customerName,referenceNo,paymentBalance,payCode,payDescription,amount,cerditCardName,paymentDate)
· BillPayment: (paymentId,billPaymentDate,dealerCode,billBalance)
· CashPayment: (paymentId,cashPaymentDate,cashReceipt,
depositedInBank,cashInHand)
· SecurityPayment: (paymentId,currentDeposit)
· CerditCardPayment: (paymentId,expirationDate,authorizationCode)
· InvoicePayment: (paymentId,invoiceBalance,invoicePaymentDate)
· ChequePayment: (paymentId,locOut,bankName,branch)
We make the relations are
· chequePayment: primary key goes to the payment Table and make a Foreign key in payment Table.
· CerditCardPayment: paymentId is the primary key in the cerditCardPayment and forigen key in the Payment table
· cashPayment ,SecurityPayment ,billPayment,InvoicePayment are all have paymentID as a primary key and its foreign key represent in the payment table.
May 26, 2006 at 5:41 am
You've done a good job of normalization, but I think there are some tweaks that could be made here.
Why is 'CreditCardName' in the main Payment table? It seems to me that that should be in the CreditCardPayment table. Also, is there a reason you aren't storing the credit card number in that table?
I would recommend against storing paymentBalance. Assuming that it is simply the outstanding balance on the account after the payment is made, that is better done by calculating it at run time. Storing a calculated value creates headaches. There are times when it can be necessary (such as for audit purposes, if you want to see what the balance was at that point in time), or useful (if it is a frequently calculated value, especially one that is searched against, storing it as a calculated column can improve performance). But, for a novice, I'd avoid it.
I am assuming you also have a Customer table. Yes? In that case, don't store the customerName in the Payment table. That belongs in the Customer table, which should only be referred to by the customerNo.
Similarly, check to see if payDescription is related to payCode. If it is, split it off into a separate table.
Otherwise, I think you're definitely on the right track.
May 29, 2006 at 4:01 am
Actually we use a creditCardName for which type of creditCard used the customer .
Its my mistake ,yes we store the CreditCardNo for storing the Data.
Yes we have a customer Table.
(recorded,customerNo,mobileNo,customerName,username,companyName,
billingAddress,teleph,officeAddress,officeTelePhone,fax,residenceAddress,
residenceTelephone,customerNIC,customerNTN,passportNo,previousMobile,customerBusinessType,customerDetailDate,accountContect,otherMobileNo,
emailAddress,CSAFNo,dealerCode,productCode,systemDetail)
Is payCode is a entity Or we relate a payment Table???
Viewing 3 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply