PHP&;MySQL:第二个表中的表项列表
我正在开发一个包含两个表的MySQL数据库的网站,一个包含用户信息,另一个包含礼物信息。我想存储的信息是谁支付了不同礼物的一部分,以及支付的金额,以便他以后可以更改 我会在礼品表中添加一个条目,其中包含捐赠用户的数组和金额。如果以后有人想更改,我会更改金额或删除条目并更新显示的礼品剩余金额 但我不认为从可变长度数组开始是最佳的。也许在数据库中创建一个包含捐赠用户和每个礼物的金额的新表会更好,但编码和管理也会更复杂(我更希望只有两个表) 有人对我的困境有什么建议吗PHP&;MySQL:第二个表中的表项列表,php,mysql,arrays,Php,Mysql,Arrays,我正在开发一个包含两个表的MySQL数据库的网站,一个包含用户信息,另一个包含礼物信息。我想存储的信息是谁支付了不同礼物的一部分,以及支付的金额,以便他以后可以更改 我会在礼品表中添加一个条目,其中包含捐赠用户的数组和金额。如果以后有人想更改,我会更改金额或删除条目并更新显示的礼品剩余金额 但我不认为从可变长度数组开始是最佳的。也许在数据库中创建一个包含捐赠用户和每个礼物的金额的新表会更好,但编码和管理也会更复杂(我更希望只有两个表) 有人对我的困境有什么建议吗 编辑:根据@Lighthart的
编辑:根据@Lighthart的建议,我找到了一个解决方案。我将为每个礼物创建一个带有字段的表。如果用户捐赠礼物,我将为该用户创建一个新条目,并为相关礼物字段设置一个金额。如果用户更改了金额,我将更新条目。我可以通过添加一份礼物的所有条目来轻松计算剩余金额。如果您还有改进我的解决方案的想法,请不要犹豫 如果您反对可变长度数组,则需要使用多对多表来解决此问题。这是多对多(称为关联类)的特例,其中除了外键之外还有数据。对此,您可能需要许多表。在我脑海中,我能想到:
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
我同意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更新。我不反对可变长度数组。我只是认为在每个礼品数组中搜索用户ID时,ressource的需求比在每个礼品表中搜索用户ID时更大。不是吗?我发现了关于多对多,如果您对多对多或可变长度数组有教程/文档建议,请与我们分享!