我有3張桌子:
1- 問題 2- 答案 3- user_answers
questions
_________________
| id | question |
|____|__________|
| 1 | 1 1 |
|____|__________|
answers
_________________
| id | answer |
|____|__________|
| 1 | 1 |
|____|__________|
| 2 | 3 |
|____|__________|
| 3 | 2 |
|____|__________|
user_answers
______________________________________________
| id | answer_id | question_id | user_id |
|____|_____________|______________|___________|
| 1 | 1 | 1 | 1 |
|____|_____________|______________|___________|
| 2 | 3 | 2 | 1 |
|____|_____________|______________|___________|
| 3 | 2 | 3 | 1 |
|____|_____________|______________|___________|
因此,如您所見,user_answers表中存在多對多關系。
我想將所有問題和答案保存為一個陣列,而不是將每個問題及其答案保存在一行中。因此,每個用戶將有 1 行用于性能。
我搜索了它并找到了serialize()function 并且該列的資料型別應該是Blob.
所以新表應該是這樣的:
user_answers
______________________________
| id | array | user_id |
|______|_________|___________|
| 1 | Blob | 1 |
|______|_________|___________|
陣列可能是這樣的:
$array = array(
1 => 1,
2 => 3,
3 => 2
);
可能會有 20 多歲或更多的問題。
這是最好的方法嗎?或連續保存每個問題?或為array列使用另一種資料型別?
uj5u.com熱心網友回復:
每個用戶 1 行以提高性能
那可能會適得其反。
如果您通過序列化、JSON 等將一堆東西打包在一起,則需要避免查看這些東西。也就是說,唯一實用且有效的做法是將整個字串提取到您的應用程式中并在那里將其分解。
如果您可能需要,比如說,獲取“每個用戶僅針對問題 3 給出的答案,那么question number需要是它自己的列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/343339.html
