答案 0 :(得分:1)
这是猜测,因为你的问题不是很清楚。您正在寻找一对多模式来保存此数据集。
看起来你有两个实体(用entity-relationship data modeling的说法)。
评论与评论错误存在一对多关系:每篇评论可能有零个或多个评论错误。您在图像中显示了两个,但您仍应使用一对多关系。
您的评论实体会变成这样的表格
review:
review_id INT PK
type 1=Peer Review, 2= Internal Review
score FLOAT? INT?
start_date TIMESTAMP
end_date TIMESTAMP
您的评论错误实体变成了这样的表
review_error_id INT PK
review_id INT FK to review table
ordinal INT 0,1,2 showing order of items in report
error VARCHAR(255)
description VARCHAR(255)
quantity INT? FLOAT?
然后,要生成示例表中提示的报告,请执行
SELECT review.type,
review_error.error,
review_error.description,
review_error.quantity
review.score,
review.start_date,
review.end_date
FROM review
LEFT JOIN review_error ON review.review_id = review_error.review_id
ORDER BY review.review_id
review_error.ordinal
您使用LEFT JOIN
,因为普通JOIN
会取消review
行没有匹配的review_error
行。
如果您想要图像中显示的框和列标题,则需要使用客户端程序生成这些框和列标题。例如,您可以在HTML表格中定义单元格周围的边框。