0

箇条書きのようなユーザー編集可能なリストがあります。ポイントの削除と追加 (リストの末尾または途中) が頻繁に行われています。このリストの ORDER を維持するためのより効率的な方法は、各箇条書きに ID を持たせ、コンマで区切られた順序の SQL エントリを維持するよりも効率的ですか? 例:

$result = mysql_query("SELECT order FROM users WHERE user = '$userId'"); //Get order for logged in user. returns id1,id2,id3,id4
$row = mysql_fetch_array($result);
$order = explode(',', $row['order']); //make the order an array
$result = mysql_query("SELECT id, data FROM bullets"); //get all the bullets
$bullets = array();
while($row = mysql_fetch_array($result)){
    $project[$row['id']] = $row['data'];
}

次に実行します。

foreach($order as $k => $v){
    echo '<li id="'.$k.'">'.$v.'</li>';
}
4

1 に答える 1

2

ordinal箇条書きテーブルにフィールドを追加できます。

次に、選択は次のようになります。

SELECT id, data FROM bullets ORDER BY ordinal

また、orderで行っているように、非正規化されたデータをユーザーテーブルに保存しないでください。

また、フィールドorderは予約語であるため、名前を付けないでください。

于 2012-04-18T04:40:37.453 に答える