最佳答案
这是一个猜测,因为你的问题不太清楚。您正在寻找一对多模式来保存此数据集合。
看起来您有两个实体(用 entity-relationship data modeling 的说法)。
- 评论
- 审核错误
评论与评论错误具有一对多关系:每个评论可能有零个或多个与其关联的评论错误。您在图像中显示了两个,但您仍然应该使用一对多关系。
您的 Review 实体会变成这样的表格
review:
review_id INT PK
type 1=Peer Review, 2= Internal Review
score FLOAT? INT?
start_date TIMESTAMP
end_date TIMESTAMP
您的 Review Error 实体会变成这样的表格
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_error
行的review
行。
如果您希望图像中显示框和列标题,则需要使用客户端程序生成它们。例如,您可以定义 HTML 表格中单元格的边框。
关于mysql - 如何创建一个表,其中一列包含具有不同 id 的所有行的相同值?(请参阅布局以了解清楚),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50925105/