php - 如何设置标记系统

标签 php mysql

我想知道是否有人可以为我指明设置标记/通知系统的正确方向。我会说非常类似于标签系统。如果有人知道任何教程或示例设置,那就太好了。

目的

基本上,标志将附加到数据项,包括客户、属性(property)、承包商、应用程序等,其作用是通知用户有关该项目的重要信息。这些标志应该来自预先确定的项目列表,用户可以在其中添加或删除。

数据库

我正在考虑采用 3 table 设置。

  • flags 表:可用标志的列表,以及确定这些标志的设置 标志适用于(客户、属性(property)等)。
  • 链接表指示给定项目附加了给定标志。
  • 适当的实体表

用户界面

我希望某些功能类似于堆栈溢出的功能,例如标签的添加和删除。也许为此使用 jquery tag-it?主要是,我希望用户能够从下拉列表中选择标志,并在选择一个或多个标志时显示一个标志图标。将鼠标悬停在旗帜上应该会显示一个工具提示,列出附加到该项目的旗帜。不确定这个设置的一个标志是否显示全部用于查询目的而不是显示多个标志。 视觉样本:http://i232.photobucket.com/albums/ee2/nismomatic97/flag.png

最佳答案

您的主要问题是您拥有任意数量的可能不同实体的标记记录,而不是单个实体(如“客户”)。

过去,我通过在每个表中提供一个在整个数据库中唯一的附加 Foreign Key 字段(“FlagID”)解决了这个问题。 GUID 是合适的。然后,您可以简单地将适用于您的特定上下文的表JOIN 到您的 Flags 表中的 FlagID,您将只获得适用于该特定实体的标志。

例如,当您将 Flags 表中的 FlagID JOIN 连接到 Customers 表中的 FlagID 时,您只会获得与 Customers 相关的标志。

请注意,Stack Overflow 不存在“多个实体”问题;所有标志都转换到帖子。

关于php - 如何设置标记系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11477667/

相关文章:

javascript - 如何将Javascript函数更改为MySQL可以使用的PHP?

MySQL 创建表时出现错误 1022

mysql - MySql 中的错误#1109

mysql - 如何在我自己的 Tomcat 服务器上部署 broadleaf demo?

sql - 在 MySQL : fetching rows distinct by year 中

php - 找到出现次数最多的值并按其排序

javascript - 在页面上提交表单而不刷新

php - 如何以编程方式编写 nslookup?

javascript - 根据所选项目数量回显

php - laravel 5.3护照和 Angular 存储访问 token