PHP& MySQL:第二个表条目列表

时间:2013-02-21 21:17:53

标签: php mysql arrays

我正在开发一个包含2个表的MySQL数据库的网站,其中一个包含用户信息,第二个包含礼品信息。我想存储谁支付了不同礼物的一部分的信息,以及给予他以后更改的可能性。

我会在礼物表中添加一个条目,其中包含一系列捐赠的用户和金额。如果有人想稍后更改,我会更改金额或删除条目并更新显示的礼品剩余金额。

但我不认为从可变长度数组开始是最佳的。也许在捐赠用户和每件礼物的数量在数据库中创建一个新表会更好,但编码和管理也会更复杂(我宁愿只有两个表)。

有人对我的困境有什么建议吗?

编辑:根据@Lighthart的建议,我找到了一个解决方案。我将为每件礼物创建一个带有字段的表格。如果用户捐赠礼品,我会为用户创建一个新条目,并为相关礼品字段设置金额。如果用户更改了金额,我会更新条目。我可以通过添加一个礼物的所有条目来轻松计算剩余金额。如果您仍然想要改进我的解决方案,请不要犹豫!

3 个答案:

答案 0 :(得分:1)

如果你反对变长数组,这需要用多对多表来解决。这将是多对多(称为关联类)的特殊情况,除了外键之外,还有数据。

答案 1 :(得分:0)

你可能想要一些表格。我能想到:

users -> people in system (gist donors and recipients)
gifts -> list of gifts that can be given.
users_gifts -> table relating gifts that have been (or are being) given to the user who will be receiving them
users_gifts_donors -> table relating items in users_gifts to donors (users) and also storing information about the amount of donation towards to gift

答案 2 :(得分:0)

我同意Lighthart - 这真的是一个三桌解决方案:用户桌,礼物桌和捐赠表:

USER(userID [PK], firstName, lastName, email, passwordHash)
GIFT(giftID [PK], title, description, totalCost, dateAdded, owner [FK])
DONATION(donationID [PK], donatingUser [FK], giftDonatedTo [FK], amount, date)

[PK] =主键,[FK] =外键

这样,如果有人想在以后更改捐赠金额,您可以在特定的捐赠ID记录上执行SQL UPDATE。