首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为数据库中的新元素创建新表是很好的做法吗?

为数据库中的新元素创建新表是很好的做法吗?
EN

Database Administration用户
提问于 2013-10-30 12:40:11
回答 2查看 143关注 0票数 0

我正试图为应用程序所需的数据库创建一个良好的模型。实现它的方法包括为添加的每个新元素创建一个新表,但我不确定这是否真的是一个好主意。我发现了一个相关的问题,用一个花园作为类比,我很喜欢这个,所以我会试着用下面的例子来说明。请注意,每个园丁只与一个花园工作。园丁不需要在几个花园里。

我有一套这样的Garderener:

代码语言:javascript
复制
PrimaryKey | Name | Garden
1          | Bob  | Garden1
2          | James| Garden2
3          | Ian  | Garden3

每个花园都会指向一张新桌子,上面放着鲜花。花园里有所有的花。

代码语言:javascript
复制
FlowerNumber | Type
1            | Holly
2            | Lilach
3            | Larch

那么,问题是,为每一个新的园丁创建一个新的餐桌花园是“正确的”吗?我一直认为创建新表格是一种浪费,但我不确定还有什么其他方法可以做到。我认为面向对象的思维可能扭曲了我对数据库的思考方式。

EN

回答 2

Database Administration用户

发布于 2013-10-30 13:17:08

不,我想没有这样的需要。您只需创建一个新的表花园,它将有自己的主键&它应该包含Gardner的外键。这样您就可以维护这些表之间的关系&可以使用SQL获取数据。注意使用外键插入和删除数据。

票数 0
EN

Database Administration用户

发布于 2013-10-30 14:44:22

上面的模型适用于花园不相关的花卉列表。但当花或园丁可能在多个花园里时,它就行不通了。

您应该为每种类型的实体都有一个表。您没有花园表,您有一个花卉桌,所以要完成模型,您需要添加一个花园表,并链接到它。

例如:

代码语言:javascript
复制
GardenerID | Name   | Garden
1          | Bob    | 1
2          | James  | 2
3          | Ian    | 3

FlowerID   | Type   | Garden
1          | Holly  | 1
2          | Lilach | 2
3          | Larch  | 3
4          | Larch  | 2

GardenID   | Address
1          | 221b Baker St
2          | 29 Acacia Rd
3          | 10 Downing St

当然,外键在哪里取决于您想要如何定义关系,以及您是否希望有多个园丁到一个花园,反之亦然。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/52496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档