sam*_*moz 1 sql sql-server database-design
我试图在我的数据库中创建一个"任务"架构.一个字段是"blockedBy",表示阻止当前任务的另一个任务.
我是SQL Server和数据库的新手.如何正确创建表格?似乎唯一有效的选项是数字或文本.
我应该只将另一个"任务"的ID号存储在"blockedBy"字段中,还是有更好的方法?
我假设:
这是我的列提议,以及数据如何的示例:
TaskID TaskName TaskDescription ..... TaskBlockedBy
------ -------- --------------- -------------
1 Eat Eat food <NULL>
2 Drink Drink, um, water <NULL>
3 Sleep Ah, peace! <NULL>
4 Wake Up Crap 3
Run Code Online (Sandbox Code Playgroud)
第3行中的唤醒任务被第3行中的睡眠任务阻止.
表字段将具有以下数据类型:
TaskID int (identity/autonumber)
TaskName nvarchar(50) not null
TaskDescription nvarchar(200) not null
TaskBlockedBy int
Run Code Online (Sandbox Code Playgroud)
如果您预计会阻止任务的多个现有任务,请将表拆分为2个表:AllTasks和BlockedTasks.AllTasks表将不再具有TaskBlockedBy字段,BlockedTasks及其数据将如下所示:
BlockID TaskID BlockedBy
------- ------- ----------
1 4 3
2 4 2
Run Code Online (Sandbox Code Playgroud)
这表示睡眠阻止了唤醒任务以及用户在睡觉前喝了什么.
HTH
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |