我处于设计数据库的早期阶段,我几乎没有(没有)数据库设计/规划经验。该数据库是作业跟踪引擎的一部分。
创建作业时,会为它们分配一个作业编号、描述、客户以及从列表中选择的多个关键字。我的问题与选择将所选关键字链接到作业的最有效(运行时速度)方式有关。
我看到了很多方法来做到这一点,有些不那么传统,而且可能比其他方法更危险......
选项 A - 将可以分配给作业的关键字的最大数量限制为值“N”(可能为 5),并具有下表列。
[id] [job number] [description] [client] [keyword 1] .. [keyword N]
1 123 zyx kk word test
2 183 tyx ff test -
3 214 xyx tt bleh -
Run Code Online (Sandbox Code Playgroud)
选项 B - 有一个关键字表,每个关键字都有一列。整个数据库中的关键字是手动管理的,但可以有任意数量的关键字,比如说 X(可能超过 200 个)。创建作业时,表中会添加一个新行,并在已选择关键字的每一列中输入作业编号或 id(来自另一个表的链接)。例如
[word] [test] [bleh] ....... [keyword X-1] [keyword X]
1 - 1 1 -
- 2 - - -
- - 3 3 3
Run Code Online (Sandbox Code Playgroud)
选项 C - 类似于“选项 B”,除了关键字有自己的表格。但这只是意味着我的数据库中有 X 个表...
在这个阶段,选项 A 是领跑者,但我并不特别喜欢对可以分配给工作的关键字数量的硬限制。任何人都可以提出替代设计,这样我就没有可笑的行/表数量,因此我不必限制分配给工作的关键字数量。
谢谢
A 不好
关键字表
ID PK
Keyword
Run Code Online (Sandbox Code Playgroud)
然后有一个连接表
jobID PK FK
keywordID PK FK
Run Code Online (Sandbox Code Playgroud)
用 FK 到两个表
归档时间: |
|
查看次数: |
255 次 |
最近记录: |