几个表的SQL结构

时间:2015-08-12 01:49:17

标签: mysql sql sql-server

我需要创建一个mySQL数据库来保存有关车辆的信息。我的直觉是创建一个包含我需要的列数的表,但后来我读到了这样做的问题。经过研究,我认为我的方向正确,具有以下结构:

Vehicles Database

Motorcycles Table
id|road|cruising|touring|

Cars Table
id|sedan|coupe|hatchback|

Colours Table
id|green|red|blue|black|silver|white|yellow|etc..

Make Table
id|ford|chevrolet|gm|toyota|bmw|etc..

Quadrant Table (1-4)
id|motorcycle|car|truck

所以基本上我有一个桌子用于对象 - 汽车,摩托车,卡车 - 然后是字段/属性的表格 - 颜色,制作等,然后是一个用于象限的车辆的表格,带有一个值1-4的每一行是仅一辆车的实例。

我遇到的问题是了解主键和外键需要在哪里才能组织数据:

  1. 每个选定的车辆及其领域
  2. 通过象限,显示每辆车及其各自的字段
  3. 计算汽车的用户应该能够输入车辆类型,字段值和它所见的象限并填充数据库 - 然后我需要通过象限调用数据来分析数据。

    我不知道是否或如何使用JOIN语句?我如何构建这个数据库以满足我的需求?

    FWIW,dba.stackexchange说基本的SQL问题属于这里,所以我希望我在正确的地方。

2 个答案:

答案 0 :(得分:2)

您能说出您对数据库的确切需求,即您需要什么功能。

我建议如下表:

1)车辆表:    id |类型可能包含类似1的信息|摩托车,2 |汽车 2)类别表:    id(外键)| category |颜色包含信息如1 | touring | Black,2 | Car |两厢 3)制作表:(如果你需要创建另一个表)    id(表1的外键)| Make

我还没有理解象限表的功能,但是通过这3个表,您可以根据需要创建视图并使用它。

答案 1 :(得分:1)

从我的观点来看:

我将创建一个表格CarBrands,其中包含Id, BrandName, Description列,可用作查找

然后我将使用Cars创建另一个表Id, CarBrandId, ColorId (From Colors Table), Description,这是包含用户记录的表。

与您的其他实体相同。我建议您搜索实体关系图,这是一种帮助您想出好设计的好方法。

另请查看此old StackOverflow question,这对您有帮助。