gpt4 book ai didi

php - 将许多用户创建的项目聚合到一个 "general"项目中

转载 作者:行者123 更新时间:2023-11-29 14:56:43 35 4
gpt4 key购买 nike

我正在构建一个网站,用户可以在其中清点项目并向其应用各种属性,例如。照片、网址、评论等。

我有一个包含三个表的数据库结构: users , entries , associations .

这些表具有以下字段:

用户
id | joined | email | salt | password

条目
id | created | creator | type | value

协会
id | created | creator | type | node1 | node2

以下是网站功能的详细说明:

用户将商品添加到其库存
所有用户创建的项目都进入 entriestype的“项目”。一行被添加到 associationstype '占有',node1 users.idnode2 entries.id。此关联行是我(使用 INNER JOIN 条目)提取和显示用户库存的方式(不仅仅是提取 Creator = users.id 的所有条目,因为用户可能创建他们不拥有的项目)。

向项目添加属性
这部分似乎让我向其解释的每个人都感到困惑。 “属性”实际上只是另一个项目。通过这种方式,它基本上呈现了用户创建的自由形式的层次结构。例如,您可以用“Book”来“标记”丧钟为谁而鸣,而 Book 是另一个项目(无论它是否在用户的库存中并不重要)。为了使这项工作正常进行,我只需将另一行添加到 associationstype “tag”和node1 entries.id(父项)和node2 entries.id(“标签”或子项)。请记住,条目也可能是 url、评论、照片等,它仅取决于 entries.type 。现在我可以提取所有项目属性。例如,所有照片:($item_id = 我正在查看的页面)"SELECT * FROM entries INNER JOIN associations ON associations.node1 = $item_id AND associations.node2 = entries.id AND entries.type = 'photo' .

我可以使用类似的查询来提取项目的所有评论,它的网址等等。这使我能够在项目、项目及其所有者、项目和评论、评论和评论(回复)之间创建一个流畅的关联系统。

我的问题是,一旦我有许多用户创建了一个项目的条目,例如“MacBook”,将所有这些单独的项目合并、聚合、合并或无论您如何调用它的最佳方式是什么?如果您愿意的话,那么用户创建的所有这些数据都可以成为一个知识 block 。

再说一次,我不太担心用户输入“mac book”“Apple Macbook”等。总的来说,这些用户只是做错了,不会影响社区。

基本上,如果没有“MacBook”的用户进行搜索并登陆 MacBook 页面,他们会看到最流行的标签、一些照片(随机的、流行的,无论如何,这都是微不足道的)、有关它的评论、最流行的 URL 等。

另外,非常感谢您花时间阅读我令人困惑且详尽的描述! :)

最佳答案

有一个名为“Tags”的表,其中有一个唯一的名称字段。每当用户输入新名称时,它就会添加到此处。

每个项目都应该链接到该表。这听起来像是一个标签排列多个项目,因此您不需要 Item_Tags 表,只需要 Items 表中的外键 Tag_Id。

对于评论,您只有一个链接到该表的评论表。

要仅显示 4 张照片,您可以选择连接到该名称的照片(大概是具有该名称的项目的照片)并限制 4

对于其他/类似的设计模式,请搜索与标签相关的问题,例如 this one .

关于php - 将许多用户创建的项目聚合到一个 "general"项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4446131/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com