3

どの種類のデータ モデルを使用する必要があり、このデータ モデルがどのように見えるかを調べようとしています。モデルはリレーショナル データベース (SQL) に格納する必要があります。使用言語: PHP.

プロジェクト、タスク、レビューなど、いくつかの種類のアイテムがあります。私の最終的なアプリケーションには、多くの種類のアイテムがあります。

各項目 (任意のタイプ) は別の項目 (任意のタイプ) に属する必要があり、各項目 (任意のタイプ) は別の項目 (任意のタイプ) のフォローアップになることができる必要があります。したがって、継承と時系列の 2 種類の関係が必要です。どちらも指示されています。どのような関係アイテムであっても、それ自体にループバックしない場合があります。違法: アイテム A -> アイテム B -> アイテム C -> アイテム A。

次の種類の情報を抽出できるようにしたい:

  • このアイテムにつながる一連のアイテムを表示してください。(時系列) 出力: リスト
  • このアイテムに属するすべてのアイテムを表示します。(継承関係) Output: Tree
  • このアイテムがそのアイテムにどのようにつながるかを示してください (他のプロジェクトのアイテムは無視してください)。(時系列と継承関係の両方) 出力: ??

最後のものをどのように視覚化するかわかりません。

ユーザーは次のことができる必要があります。

  • アイテムの追加/削除 (あらゆる種類の)
  • 関係を作る/壊す (あらゆる種類の)
  • 関係または項目タイプを変更します。
4

2 に答える 2

0
Item(iid,itemstuff,typeid,iid)
type(typeid,description)

itemstuff を使用すると、シリアライズ可能なデータや、一般的な好きなものを追加できます。そして、必要に応じて、次のように専門化します。

Item1(iid,i1....)
item2(iid,i2....)
.

しかし、変更は更新を意味します。

同様の問題で一度これを行う必要がありましたが、当時はループバックについて気にしませんでした。rdbms 内でこのような動的モデルを取得できるとは思えません。

于 2012-11-18T16:24:54.740 に答える
0

リレーショナルな概念設計を通じて、これがどのように問題になるのか理解できません。(クエリからの) 出力を解析することで、求めている形式の情報をいつでも取得できます。例えば

スキーマで:

project(pid,...),
milestone(pid,mid),
tasks(tid,mid,..),
reviews(rid,tid,..),
events(evid,rid), ... 

プロジェクトから、レビューにつながったすべてのイベント、またはプロジェクトに関連するすべてのイベント (結合を介して) を取得し、それらを解析して、任意の情報形式で整理および表示できます。

ユーザーはいつでもアイテムを追加および削除できます。あなたの例では、「関係または項目タイプの変更」が何を意味するのかまだわかりませんでした!

于 2012-11-18T14:54:50.440 に答える