開始するローカルアプリを開発するdbの相互作用についてもっと学ぼうとしています。基本的に、私がこれまで行ってきたことはさまざまな結果をもたらしました。多くのことを変更しましたが、現時点では何を変更したかさえわかりません (笑)。テーブルの 1 つが正しかったかどうか確信が持てないので、最初からやり直すことにしました。これが、ばかげたローカル アプリに実行させたいことです。
- 最大 9 つの特定の RSS フィードを保存します (以前は URL/リンクを作成していましたが、以前に行ったことに混乱したくないので、RSS フィードに変更しています)
- デフォルトで 1 つのフィードが入力されます (したがって、すべてのユーザーは 1 つの共通フィードを持ち、変更することができます)
- フィードは、入力されたのと同じ順序で取得/印刷できるように、何らかの順序付けスキームで保存する必要があります。
対応する db エントリが入力された 9 つのテキスト フィールドを含む編集画面が表示されるので、次のようになります。
feed 1: <input type="text" value="http://rss.news.yahoo.com/rss/topstories"> **the default feed for everyone, but they can change it**
feed 2: <input type="text" value="http://content.usatoday.com">
feed 3: <input type="text" value="http://newsrss.bbc.co.uk/rss/newsonl.../world/rss.xml">
feed 4: <input type="text" value="">
feed 5: <input type="text" value="">
feed 6: <input type="text" value="">
feed 7: <input type="text" value="">
feed 8: <input type="text" value="">
feed 9: <input type="text" value="">
<input type="submit" value="update">
ここで新しいフィードを編集/追加し、それらのフィードを同じ順序で取得できるようにしたいと考えています。これは、以前の試行で混乱の大きな原因でした。
フィード URL を同じ順序で出力する出力画面が表示されます。
usersテーブルと現在はfeedsの2 つのテーブルがあります。usersテーブルは問題ないと思いますが、基本的には少しの個人情報が格納されています。そこにあるものはすべてかなり明白であるべきだと思います。「州」列には、選択/ドロップダウンからの2文字の州の略語が保存されます。州ごとにユーザーを検索できるように、インデックスを作成しました。そのデータの取得/編集/更新に問題はありません。
CREATE TABLE users (
user_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
first_name VARCHAR(20) NOT NULL,
last_name VARCHAR(40) NOT NULL,
state CHAR(2) NOT NULL,
email VARCHAR(60) NOT NULL,
pass CHAR(32) NOT NULL,
registration_date DATETIME NOT NULL,
PRIMARY KEY(user_id),
UNIQUE (email),
INDEX login (email, pass),
INDEX state (state)
);
これが私の新しいフィードテーブルです
CREATE TABLE feeds (
user_id SMALLINT UNSIGNED NOT NULL,
feed_url VARCHAR(255) NOT NULL DEFAULT 'http://rss.news.yahoo.com/rss/topstories',
feed_id SMALLINT UNSIGNED NOT NULL DEFAULT 1,
PRIMARY KEY(user_id, feed_url)
);
ユーザーが新しいフィードを入力すると、たとえばフィード #2 の場合、値が feed_url に挿入され、値 2 で feed_id が挿入されます。フィード #3 が入力された場合、値3で feed_id が挿入されます。これで、ORDER BY を使ってレコードを順番に取得できるはずですよね?
データ編集画面では、フィードが常に入力されたとおりに表示される必要があります。
データ出力画面には、常にフィードが入力されたとおりに表示される必要があります。
それで、これは適切に見えますか?何か欠けていますか?私の feed_url VARCHAR(255) は絶対確実ではないかもしれませんが、短い URL でのみテストするつもりです。いつでも簡単にぶつかることもできます。