我有一个数据库,我有评论,投票,画廊,图像等... 例如,可以使用相同的表单对图库和图像进行注释,然后将其存储在单个表中,注释。
我想知道如何在评论表中存储此类型信息? 使用ENUM类型,针对类型表的外键,插入时硬编码等。?
答案 0 :(得分:2)
在保留外键的同时,可能有两种方法可以设计它。
第一种是基本上为每种类型都有一个评论表;让他们分开。对于每个注释,都有父图库或图像的外键,具体取决于表。
第二个是有一个表(比如评论),其中包含可评论的任何内容的公共数据。每个图库或图像都有一个外键,用于评论中唯一对应的行。注释表中的每一行都有一个可注释的外键,以及注释文本,日期等。
你可能会觉得这很有用,因为你最终会想要整个评论的集合的元数据......例如。指定是禁用评论,仅为朋友启用评论还是为所有人启用评论。
编辑选项3与选项1类似,但不是每个可注释类型都有完整的单独注释表,只需为每个可注释类型分别使用关联表。
|comments| |gallery_comments| |image_comments |
-------- ---------------- ---------------
|id (pk)| |comment_id (fk)| |comment_id (fk)|
|text | |gallery_id (fk)| |image_id (fk)|
|date | ---------------- ---------------
|author |
--------
在我看来比选项1好多了。
答案 1 :(得分:2)
针对类型表的外键将获得我的投票。像这样: