我想要构建如下所示的页面,并且应该从数据库中检索所有数据。术语,主题和句子都从数据库中检索。三个级别的数据。在每个学期(例如2017年春季),我都可以在所有这些句子之间进行选择。当我想要存储这些类型的数据时,我应该如何构建我的数据库?
弹簧2017
Subject1
- 语句1
- 句子2
- 句子3
Subject2
- 句子13
- 句子12
- 句子17
Subject3
- 句子11
- 句子14
- 句子19
Autmn 2017年
...
我想提出类似的信息从数据库到用户,并让这一切句子之间的用户选择。我应该如何建立我的数据库,以最好和最有效的方式实现这一目标。
一种方法是:
Table 'subject' Table 'sentences'
| id | subjects | | id | subjectid | name |
| 3 | Subject1 | | 1 | 3 | Sentence 2 |
| 4 | Subject2 | | 2 | 4 | Sentence 13 |
Table 'term'
| id | term | sentenceid |
| 1 | Spring 17 | 1,2,28 |
另一种方式是,也许使用枢轴表,是这样的:
Table 'sentences'
| id | parentid | name |
| 1 | 0 | Subject2 |
| 2 | 3 | Sentence 2 |
| 3 | 0 | Subject1 |
| 4 | 1 | Sentence 13 |
Table 'term'
| id | term | sentenceid |
| 1 | Spring 17 | 2,4,28 |
注意:语词的数量可能比只有两个更多的一年。 这是你推荐的任何这种结构,或者你认为我应该建立我的数据库的任何其他方式吗?其中一个更有效率?不那么苛刻?更容易调整?
我不明白你想做什么,但我可以告诉你,在一个字段中存储逗号分隔值会导致痛苦和沮丧,所以我不喜欢这些选项。 – JNevill
术语,主语和句子均从数据库中检索。三个级别的数据。在每个学期(例如2017年春季),我都可以在所有这些句子之间进行选择。 – William82