MySQL:在数据库中创建paypal支付信用系统需要哪些字段?
现在我有3张桌子:MySQL:在数据库中创建paypal支付信用系统需要哪些字段?,mysql,sql,Mysql,Sql,现在我有3张桌子: CREATE TABLE `tbl_payment_info` ( `payment_info_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, `payment_type` tinyint(2) NOT NULL, (for users to choose paypal or credit card) `num_credits` int(11) NOT NULL, `price_per_credits`
CREATE TABLE `tbl_payment_info` (
`payment_info_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`payment_type` tinyint(2) NOT NULL, (for users to choose paypal or credit card)
`num_credits` int(11) NOT NULL,
`price_per_credits` float NOT NULL,
`payment_time_stamp` datetime NOT NULL,
PRIMARY KEY (`payment_info_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `tbl_paypal_info` (
`paypal_info_id` int(11) NOT NULL AUTO_INCREMENT,
`paypal_email` varchar(100) DEFAULT NULL,
`payment_info_id` int(11) NOT NULL,
PRIMARY KEY (`paypal_info_id`),
KEY `tbl_paypal_info_ibfk_1` (`payment_info_id`),
CONSTRAINT `tbl_paypal_info_ibfk_1` FOREIGN KEY (`payment_info_id`) REFERENCES `tbl_payment_info` (`payment_info_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `tbl_credit_card_info` (
`credit_card_info_id` int(11) NOT NULL,
`payment_info_id` int(11) NOT NULL,
`card_fullname` varchar(128) NOT NULL,
`credit_number` varchar(20) NOT NULL,
`credit_card_type` tinyint(2) NOT NULL,
`billing_address_Line_1` varchar(100) NOT NULL,
`billing_address_line_2` varchar(100) DEFAULT NULL,
`billing_city` varchar(50) NOT NULL,
`billing_country` varchar(50) NOT NULL,
`billing_phone` varchar(50) DEFAULT NULL,
PRIMARY KEY (`credit_card_info_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
我遗漏了什么吗?有没有更好的方法来更有效地编写它?任何建议都会有帮助。提前感谢。不知道这些字段是否都丢失了,但信用卡表上突出的字段是:
- 州政府
- 帐单
- 信用证到期日
我对效率的最后一点意见是,我不会在第一张表上使用UTF-8浪费空间。它看起来并不是真的在存储国际字符。我不明白,我认为您可以在自己的系统中按自己的方式存储数据。嗯。。。我看过一些关于paypal ipn的教程,可能有些字段是必需的,但这里没有。我只是想再次检查一下是否有遗漏。你不应该在数据库中存储完整的信用卡号码,尤其是明文。那么你会在第一个表中使用默认值吗?因为它看起来大多是简单的字母和数字(除非user_id字段有任何特殊值…),我最多选择ascii或拉丁语1。请注意,这可能会有点性能过度,除非您的表增长到huuuge,否则不会有什么不同