2017-01-12 21 views
0

私が作成しているアプリケーションは、ユーザーの入力によって異なる値を保持する複数のページを保持します。例1の本は10ページあり、テーブル名はBook1_p1、Book1_p2、Book1_p3、Book1_p4などとなります。このデータベースは異なる構造のテーブル名になりますが、この良い習慣であるか、ページと呼ばれるテーブルが1つしかありません。これは時間の経過とともに多くの行を集めることになるという懸念があります。以下の構造の例を参照してください。異なるテーブル名で同じテーブル構造を持つデータベース構造

id | Page ID  | Field Id | Value 
    ------------------------------------ 
    1 | 1   | 5  | hello 
    2 | 1   | 3  | some info 
    3 | 1   | 2  | fdf 
    4 | 1   | 1 
    5 | 1   | 3 
    6 | 1   | 2 
    7 | 1   | 1 
    8 | 1   | 3 
    9 | 1   | 2 
    10 | 1   | 1 
    11 | 1   | 2 
    12 | 1   | 1 

私はXamarinでSQLiteを使用しています。私は前とクラス名が使用されているとして、別のテーブル名と同じクラスを使用することはできませんクラスdatabase.CreateTable<BookTable>();

BookTableでクラスから研究から

public class BookTable 
    { 
     public BookTable() 
     { 

     } 

     [PrimaryKey, AutoIncrement] 
     public int ID { get; set; } 
     public int PageId { get; set; } 
     public int FieldId { get; set; } 
     public string Value { get; set; } 

    } 

をテーブルを作成し、これを使用していますテーブル名のために、私は間違っているかもしれないことを知らない。これは良いアプローチですか、あるいは、データベースが成長するときに問題を克服するつもりです。

+0

データベース構造は、データ要素間の関係によって異なります。あなたは本当にそれをページに置くべきではありません。 –

+0

Rajが言及しているように、これは可能な限りリレーショナルであり、あるタイプのオブジェクトに依存しないことを望みます。 Relational Database Standardsの書籍を拾い、内部のいくつかの概念を調べることは良い考えです。 –

+0

@RajMoreあなたのご意見ありがとうございます、私はそれを将来の証明にしようとしています。例えば、より多くの本が追加されます。だからあなたは、すべてのページレコードを含むページテーブルを持つことが最善の方法だろうと思います。 – Bish25

答えて

1

すべてのブックが同じテーブル構造を持つ場合は、実際にすべてを1つのブックテーブルに配置する必要があります。

+0

それぞれの本が250-500行の間に生成され、時間的に1,000冊以上の書籍が存在すると、パフォーマンスにどうなるでしょうか。 – Bish25

+2

パフォーマンスが問題であるかどうかを判断するためにテストする必要がありますが、500k行はそれほど大きくなく、個々の行はかなり小さいはずです。 – Jason

関連する問題