2017-01-12 239 views
0

我创建的应用程序将保存多个页面,这些页面将根据用户输入保存不同的值。例如1本书将会有10页,表名将分别为Book1_p1,Book1_p2,Book1_p3,Book1_p4等。这个数据库将是相同的结构,只是不同的表名,是这个好习惯还是有一个表叫页面,我的唯一关注是否会随着时间的推移收集很多行。请参阅下面的结构示例。具有不同表名的相同表结构的数据库结构

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所提到的,你希望这是尽可能的关系,而不是依赖于一种类型的对象。选择一个关系数据库标准书并通过其中的一些概念可能是一个好主意。 –

+0

@RajMore感谢您的意见,我只是想让它成为未来的证明。例如添加更多书籍。所以你认为有一个页面表将包含所有的页面记录是最好的方法。 – Bish25

回答

1

如果每本书都有相同的表结构,那么您应该将它们全部放在一个Book表中。

+0

好吧,如果每本书在250-500行之间生成,并且可能有超过1000本书,那么性能会发生什么变化。 – Bish25

+2

您必须测试以确定性能是否成问题,但500k行并不真的很大,而且看起来每个行都应该相当小。 – Jason

相关问题