为数据库中的每个表创建一个类

时间:2010-09-20 09:38:41

标签: design-patterns database-design

我正在为我的朋友库创建一个软件。现在我在数据库中有一个用于书籍和电影的表格,但是让我们说用户想要添加cds。然后我必须让用户在数据库中为cds创建一个表。到目前为止,设计是为数据库中的每个表创建一个类,包括其字段,以及在数据库中插入和更新数据的方法(c#和mysql)。我将如何继续为数据库中的所有表创建一个“通用”类,而不是像我现在所做的那样为每个特定类。

我正在寻找模式上的名称或类似名称,而不是完整的回复教程。

谢谢:)

3 个答案:

答案 0 :(得分:1)

以下是一些模式:

答案 1 :(得分:0)

您可以使用地图或字典来实现。简单来说,使用名称/值对。但对于你正在做的事情来说,这是一个非常糟糕的设计。这将使您感到困难并进行管理。

我知道你在考虑为所有表一遍又一遍地编写相同的方法。对于这种情况,您应该使用某种ORM(对象关系映射)。对于java,您可以使用Hibernate,Toplink。 NHibernate是.Net中Hibernate的一个端口。

答案 2 :(得分:0)

您可以使用名为STI的内容:单表继承。它适用于这样的地方,我想,有许多属性是共享的,有些是分开的。

所以你可以创建一个表,称之为LibraryItem,它有一个类型,可以是CD, book, dvd和一个标题,还有一些字段将填入某些类型并为空其他。

通常最好为每个表创建单独的表,但有时STI方法更灵活。您可以轻松添加新类型:例如LP或VHS,只要它不会引入太多新的属性/字段。