必要な機能は以下のようなものです。
・データベースに,短い文章が登録されている。
・利用者は文章の特定の部分に対してコメントをつけることができる。
・つけられたコメントは,本文と共に表示される。
・コメントの対象となる文章及びコメントは変更・訂正される場合がある。
・文章,コメントの双方が検索の対象となる。
既に考えた事柄は以下の通りです。
・バイト数・文字数などの位置で特定する方法は,対象に変更があったときに注のデータを変更することになるので避けたい。
・文章中にタグ付きで埋め込む方法は検索が複雑になるので避けたい。
以上から,
・XMLデータにする
・タグ付きにし,検索対象データを別に保持する
の2通りの方法を考えたのですが,他により一般的な方法があればお教えください。
なお,「他の方法はない」という回答は不要です(ポイントは差し上げません)。
MySQLを使われるならテーブルつくらはったらどないです。
本文用テーブル
id
本文
作成者
コメント用テーブル
id
本文のid
コメント文
こんな感じで本文用とコメント用をidで結び付けして
本文や個々のコメント文はそれぞれのidをupdate条件にすると。
表示用の画面は好きにデザインすれば見易さを追及できますよ~
URLはダミー:http://www.google.com/
どのようなイメージを想定してますか?
短歌に付箋のように貼るとかじゃないですよね。
短歌が見えなくなりますし・・・。
古典の短歌集とか,読んだことある人はすくないか…。
私も2人と同じようにすべての情報をDBに格納すると思います。
同じデータを検索用に2重もちとかはすると思います。
バイト数・文字数などの位置で特定する方法に近い感じで
文章とコメントの関連付け情報はDBに保持すると思います。
データの変更時にどうするか問題なのですが、
どのように文章が変更されるのかわからないので保留です。
---------------------------------------------------
>文章の特定の部位に事後的な変更の手間が小さい方法で
>コメントをつけたいだけです。
短歌、俳句ということで何らかの暗黙の決まりとかあると
思うのですが、現状では変更の手間というのが何を指している
のか不明です。そもそも入力はどうやってやるかとかも
あるので、わかりません。
(1)ABCDEFG
EFGHI
JKLMNOPQ
BCDに対してコメント(脚注)入れた場合は、
どのように表示しますか?
(2)(1)の場合、3つの文章としてDBには3レコードで格納
しますか?
(3)脚注は、別のテーブルにDBに入れますか?
(4)文章と脚注の関連付けはどのように格納しようとして
ますか?
(5)ABCDEFGをZYZに書き換えたら
脚注も含めてどう処理しますか?
これを答えてもらっても、私が回答できる保証はありま
せんが・・。
今を春べと 咲くやこの花
という歌(1レコード)があり,この歌の「難波津」という部分に「現在の大阪港の古名」とコメントをつけたとします。
この場合,”前から1文字目~3文字目”,あるいはもうちょっとおおざっぱに”3文字目の後”として位置を特定し,そのデータをもとに本の脚注のように「(1)」などの文字を付け,
下に「(1)現在の大阪港の古名」と表示します。
難波津(1)に 咲くやこの花 冬ごもり
今を春べと 咲くやこの花
(1)現在の大阪港の古名
しかし,この方法では「難波津」の前に語句が挿入された場合,コメントの位置がずれます。
代案は,「難波津」という語句にタグ付けするか(xml),
コメントの位置情報を保持する
「難波津(1)に 咲くやこの花 冬ごもり 今を春べと 咲くやこの花」
というデータと元の文の
「難波津に 咲くやこの花 冬ごもり今を春べと 咲くやこの花」
というデータを2つ保持するというものです。
以上で(1),(2)の回答になるかとおもいます。
(3)と(4)は,私の質問事項そのものです。
(4)の決定により(3)が決まる関係にあるかと思います。
(5)のような書換えであれば,当該部分に対する脚注は削除されることになります。
ポイントを付与させていただきたいので,1度,「回答」していただけるとありがたいです。