我正在使用Mysql和php。
这是我的表结构:=
+----+---------------+--------+--------+--------+--------+--------+--------+
| id | no_of_replies | reply1 | reply2 | reply3 | reply4 | reply5 | reply6 |
+----+---------------+--------+--------+--------+--------+--------+--------+
| -- | -- | | -- | -- | -- | -- | -- |
+----+---------------+--------+--------+--------+--------+--------+--------+
用户可以为一个问题提供最多六个回复。大多数时间用户给出4-5个回复.i存储回复数量(no_of_replies)和所有回复(reply1,reply2,...) 。 回复5和回复6大多是NULL。
所以在显示数据时我有2个选项。
选项1: - 进行单一查询并获得所有回复 -
SELECT * FROM `responses` WHERE `id`='xyz'
选项2: - 做2个查询并得到必要的回复。
SELECT `no_of_repies` FROM `responses` WHERE `id`='xyz'
如果结果为3
SELECT reply1
,reply2
,reply3
FROM responses
WHERE id
=' XYZ'
注意:= 我问这个是因为这个表会经常使用,需要快速回复。
答案 0 :(得分:2)
您应该阅读有关数据库规范化的内容。在您的情况下,我会这样做:
tabel
---------------------------------
id reply date questinID
获取1个问题的1个人的回复数量
SELECT COUNT(*) FROM tabel WHERE id=userid AND questionID=questionid;
获取1个用户的1个问题的回复:
SELECT * FROM tabel WHERE id=userid AND questionID=questinid ORDER BY date;