我需要创建一个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的每一行是仅一辆车的实例。
我遇到的问题是了解主键和外键需要在哪里才能组织数据:
计算汽车的用户应该能够输入车辆类型,字段值和它所见的象限并填充数据库 - 然后我需要通过象限调用数据来分析数据。
我不知道是否或如何使用JOIN语句?我如何构建这个数据库以满足我的需求?
FWIW,dba.stackexchange说基本的SQL问题属于这里,所以我希望我在正确的地方。
答案 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,这对您有帮助。