2014-02-08 82 views
0

我试图理解数据库设计的电子商务网站。我无法理解在以下情况下要做什么。假设用户第一次创建一个账户,并进行订单。我可以写PHP代码,这将添加USER_ID(主键),名&姓氏。但是如果我想在订单表中添加user_id(订单表中的user_id是一个外键)。由于customers表中的user_id是自动递增的,我如何获得该值?同时创建客户和订单时,如何获得客户ID?

+0

这似乎是一个http://stackoverflow.com/questions/9477502/get-the-last-inserted-row-id-with-sql-statement – dvntehn00bz

+0

的转发请参考http://stackoverflow.com/questions/1685860 /怎么办-I-得到最最后插入-ID-的-A-mysql的表型的PHP的答复家伙 – shola

+0

感谢。但是,我在这里不太清楚,因为我可以使用最大值方法,但如果某个其他客户同时注册,该怎么办?它不会给我错误的ID(已经使用过)吗?在这种情况下使用交易是最好的方式吗? –

回答

0

您使用两个表一个用于存储用户的细节和其他下订单?(这是更好),如果是这样我的建议是使用用户名(不姓或名)作为主键,用户名存储为SESSION变量为每个登录和每个订单添加用户名在订单表以及订单详细信息

0

有几种方法可以做到这一点,您可以访问新生成的user_id LAST_INSERT_ID()并在随后的事务中使用它,或者你可以将它存储在会话中,并在以后插入Orders表时使用它。