将类/表与中间值组合

时间:2015-04-25 09:26:05

标签: c# database-design

我正在努力学习构建我的(datamodel)类以反映数据库结构。

来自网络开发我过去并没有太多打扰过创建反映我的数据库内容的对象。我一直习惯于将它作为原始数组数据使用。

我正在尝试开发的系统中的数据结构基于翻译。 经过一番研究后,我决定将表格拆分为“静态”和“翻译”数据存储。下面是使用sqlite的数据库结构示例:

Table: Tutorial
(PK)Id : Integer
PositionX : Integer
PositionY: Integer

Table: Tutorial_Translation
(FK)Tutorial_Id : Integer
(FK)Language_Id : Integer
Title : Text
Text : Text

Table: Language
(PK)Id : Integer
Title : Text
Country : Text

现在,您可能已经猜到,这个想法是我将教程的文本存储在中间表“Tutorial_Translation”中。当我希望显示给定的教程时,我将基于“教程ID”和预先设置的“语言ID”将“Tutorial_Translation”值“Title”和“Text”加入到“Tutorial”表中。

到目前为止一直很好.. 现在我在这里遇到“问题”,我是否必须围绕这些数据库表构建我的系统类,以便我使用SQLite框架完美地使用它。

我真的希望得到一些关于我正在考虑使用的类结构的想法的反馈:

Class: Tutorial
Id : Int
Position : Point
_positionX : Int
_positionY : Int
TitleText : TutorialTranslation

Class: TutorialTranslation
Tutorial_Id : Int
Language_Id : Int
Title : String
Text : String

如果我要使用这样的结构,我可以通过TutorialTranslation对象轻松地实例化Tutorial的对象并调用它的标题或文本。

我的问题是:

  1. 这是一个好的(足够的)系统类结构来反映数据库设计吗?
  2. 如果是这样,创建TutorialTranslation对象的最佳方法是在Tutorial的构造函数中吗? - >有没有办法让Sqlite为我这样做?

1 个答案:

答案 0 :(得分:1)

  1. 这是一个好的(足够的)系统类结构来反映数据库设计吗?
    据我所知,对我来说看起来没问题。

  2. 如果是这样,创建TutorialTranslation对象的最佳方法是否在Tutorial的构造函数中? - >有没有办法让Sqlite为我这样做?
    您必须在项目中创建一个自定义类,以从数据库中提取相关信息。当获得这些结果时,该类将使用获得的数据初始化其字段。我不知道在你来自的' 环境中是如何完成的,但在if (array.hasOwnProperty(row))中,你必须做很多事情你自己的工作。