需要有关数据库设计问题的帮助,我无法描述

时间:2013-07-10 17:55:17

标签: database-design

我正在建立一个网站来显示星际2构建订单指南,在存储实际构建本身时我需要帮助。构建包含多个步骤,如下所示:

  

9 - 建造塔架   13 - 建造门   15 - 建造天然气
  16 - 建造塔架   18 - 建立控制论核心

现在我最初认为我可以创建一个构建表,每个构建都有自己的ID,但我不确定如何将每个步骤存储在自己的字段中,或者即使根本不需要。

构建本身将在网站上显示为无序列表,因此可以存储整个构建的HTML。我不知道这个问题的术语是什么,你可以在每个记录中有不同数量的数据,因此你需要不同数量的字段。我们非常感谢您对最佳实践的任何建议。

4 个答案:

答案 0 :(得分:1)

你可以有一个BUILD表,每个“build”有一个记录,然后是一个BUILD_DETAIL表,每个“build”你有多个记录;一个用于构建中的每个项目。

答案 1 :(得分:1)

考虑如下表:

<强>所有者 ID FNAME LName等..

<强>构建 ID MAPNAME OWNERID RaceID

<强> BuildAction的 BuildID ActionID 序列

操作 ID 名称 RaceID

<强>种族 ID 名称

  • 所有者定义指南的创建者,只有他们可以更新/更改它。
  • 构建定义了他们可能具有的特定地图/种族之一的构建之一
  • 构建操作定义构建顺序,序列允许它们重新排列而无需添加/移动
  • 操作限制了他们可以放入的数据,从而确保构建的质量。
  • Race限制了对相关竞赛的构建的可用操作。

答案 2 :(得分:1)

对于要构建的每个项目,您有一个或多个离散步骤,其中一些步骤必须先于其他步骤。所以你有一个汇编表。装配体可以具有子装配体,它们也可以具有子装配体。每个程序集都有许多构建步骤。你可以用两个表来做,其中一个表是自己的:

ASSEMBLY
assemblyid
assemblyname
parentAssemblyId  (references Assembly.Assemblyid)

NOTE: when parentAssemblyId = assemblyid, that assembly is the primary.


AssemblyStep
assemblystepid
assemblyid  (references Assembly.assemblyid)
stepordinal integer    (step's execution order in the critical path)
stepdescription

You could add tables such as AssemblyStepImages
imageid
assemblystepid
imagedescription

答案 3 :(得分:1)

你应该考虑一个有很多“步骤”的构建表,你想用时间来展示这个,对吧?你也可能只有有限的动作,所以我会这样做:

构建表样本数据:

id |名称为0,Some-Toss-Build

步骤表样本数据:

id |时间|动作
0 9 0
1 13 1
2 15 2
3 16 0

行动表:

id | Name |可能是用于渲染的图像?
0建造塔架 1建造门

对于格式化很抱歉,我试图做html表,但它没有出来!