我想知道是否有人可以为我指明设置标记/通知系统的正确方向。我会说非常类似于标签系统。如果有人知道任何教程或示例设置,那就太好了。
目的
基本上,标志将附加到数据项,包括客户、属性(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/