首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在SQLite中组织这样的数据库?

如何在SQLite中组织这样的数据库?
EN

Stack Overflow用户
提问于 2011-10-05 18:13:55
回答 2查看 754关注 0票数 1

伙计们!我需要一些帮助,为应用程序组织数据库,我不知道如何做。假设如下:有一个学术科目的清单。对于每一个科目,我们需要有一个学术团体的名单,他们参加这个主题。然后,对于每一组,我们需要有一个日期列表。每一次约会,我们都需要一份学生名单,以及这位学生那天是否在场。我脑海中有丑陋的数据结构,会感谢你的帮助。

更新

我如何看待它:

Table1(第一次是日期,第二次是列出在场的学生身份)

代码语言:javascript
运行
复制
10/10/11 | id1, id2, id3

10/11/11 | id1, 1d3, id5

Table2:

代码语言:javascript
运行
复制
subject1 | id1 id2 id3

subject2 | id3 id2

同样,id是组的id。不知道如何连接这些表。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-05 22:59:01

在设计数据库时,有许多需要考虑的问题,但根据到目前为止提供的信息,这样的情况可能是一个好的开始:

这个ER模型使用了大量的标识关系(即“迁移”父母的主键到子的PK),并导致自然的主键,而不是需要使用代理键的非标识关系。现在很多人都喜欢代孕钥匙,但事实是,这两种设计策略都有优缺点。特别是:

自然密钥更大(它们在父-子relationships).

  • But的多个级别上“积累”字段)--同时,自然密钥要求更少的JOINing.

  • Natural键可以在某些特殊情况下更好地执行约束(例如菱形dependencies).

)。

票数 2
EN

Stack Overflow用户

发布于 2011-10-05 18:28:04

您将为数据库中的各种“事物”(主题、小组、学生、会议)设计一张表格。每个表将为您需要存储的每一个数据(信息)有一列。此外,必须有一个列,或一个可预测的列组合,使您能够唯一地标识存储在表中的每一件东西(行)。

然后,您将决定事物(主题、组、学生、会议)如何相互关联,并确保每个表中都有正确的列来存储这些关系。您将发现,在某些情况下,可以通过向您已经定义的表中添加一个或多个列来完成这一任务。在其他情况下,您需要添加一个全新的表,它本身不存储“东西”,而是两件事之间的关系。

一旦你有了表格和列的列表,如果你觉得这不能正确地代表问题的某些部分,用你已经做过的工作发布另一个问题,我相信你会找到帮助你完成任务的人。

对更新的响应:

你走错路了。将两个值存储在单个字段中是一个坏主意(与正确的关系数据库设计相反)。因此,您所写的每个表都应该有两列(正如您所说的),但是第二列应该存储一个并且只有一个id。不是10/10/11的table1中的一行,而是表中的三行。

但是,在你开始担心“关系”之前,先创建表格来保存“事物”。

我还建议您学习关系数据库的基本指南。

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

https://stackoverflow.com/questions/7665735

复制
相关文章

相似问题

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