如何连接插入了未知ID的两行

时间:2015-04-24 22:20:41

标签: php mysql transactions

我的系统具有一些会计功能。我们假设有两个账户,我想在这两个账户之间转账。 acc1(id 1)acc2(id 2)。所以我想把钱从1转到2.我有这个交易表。对于此传输,我向事务表插入两行。第一笔交易从acc1获得资金,第二笔交易将这笔钱存入acc2。如何连接这两个交易?我需要另一个id,这两个事务将是相同的。 TransactionID字段是Auto Increment,我不知道id是什么。我可以在mod 10000中创建一个随机数序列,但每次我都要检查是否存在生成id的事务。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您可以拥有一个新表Transfers。这就像是:

CREATE TABLE Transfers (
    id INT AUTO_INCREMENT PRIMARY KEY,
    from_transaction_id INT,
    to_transaction_id INT,
    UNIQUE INDEX from_to (from_transaction_id, to_transaction_id),
    FOREIGN KEY from_transaction_id REFERENCES Transactions (id),
    FOREIGN KEY to_transaction_id REFERENCES Transactions (id)
);

将提款和存款交易添加到Transactions表后,您可以向Transfers添加一行,其中包含这两笔交易的ID。