0

リンゴ (apple_id) のテーブルがあるとします。そして、リンゴごとに、時間の経過に伴うその重量の履歴があります。リンゴが追加されるたびに、関連付けられたテーブルがその重量履歴で作成されるように構造化する方法は?

すべてのリンゴ (apple_id,age,weight) の重量履歴のテーブルが 1 つしかないと、他のすべてのリンゴの重量履歴を調べる必要があるため、リンゴの重量履歴を表示するときにパフォーマンスが低下するように見えます。したがって、新しいリンゴごとに新しいテーブルを作成する必要があるようです (そして、リンゴが削除されるたびにテーブルを削除します)。これを行う方法?

私の考えは、apple_id を使用して文字列に変換することです。こうすることで、テーブルの名前が一意になり、簡単に生成できます。

4

1 に答える 1

2

あなたが今説明したことは、メンテナンスの悪夢のように聞こえます。ここにあるのは、時間の経過に伴うリンゴとその重量の間の1対多の関係です。できるよ:

apples table: apple_id, other apple fields
apple_weights table: aw_id, apple_id, weight, age

次に、特定のリンゴのすべての重みを引くには、

SELECT weight, age 
FROM apple_weights 
WHERE apple_id=X 
ORDER BY age ASC

適切にインデックスが作成されていれば、パフォーマンスは問題になりません。リレーショナルデータベースは、そのために設計されているため、このようなことを行うときに非常に効率的です。

于 2010-09-16T22:59:38.057 に答える