我已经发布了几次关于链接表格以显示不同的结果,并且一些非常优秀的人帮助了我。
但它开始让我想知道我设计我的表是错误的,以解决这些问题。
例如我有2个表tblrunplan和tblplaces
tblrunplan有20个访问字段(可以是重复的位置),每个字段都带有一个placeID号 tblplaces包含每个地方的所有细节。
在我的头脑中,这是正常的,这是正确的吗?如果是,那么在显示运行计划信息时,我显然不想显示PlaceID号码,但是有来自tblplaces的地名。
我该怎么做?没有20个tblplaces实例打开,每个实例都有一个连接。
TBLPLACES:
PlaceID
Place Name
Lat
Long
Address 1
Address 2
Town
Contact Number
TBLRUNPLAN:
RunID
Visit1
Visit2
Visit3
Visit4
Visit5
Visit6
etc.
答案 0 :(得分:0)
正如我的评论中所述,我将TblRunPlan
替换为Run
表(ID,日期,与运行相关的额外数据)以及一个新的RunPlace
表作为记录每次运行访问的地方的方法(id,RunID,PlaceID,VisitOrder)。
这将确保您拥有灵活且可扩展的架构。您拥有的RunPlan
表的问题是您必须为每次运行的一组(20)个地点预留空间。即使你每次运行都不会访问20个地方,你仍然会占用存储空间。
如果您将来决定每次运行访问25或15个位置,则不必更改架构中的内容,而使用现有架构则必须添加或删除列。
然后,您可以使用以下内容检索信息:
SELECT
R.RunID, R.date, RP.VisitOrder, P.Place_Name
FROM
Run R
JOIN RunPlace RP ON R.RunID = RP.RunID
JOIN Place P ON RP.PlaceID = P.PlaceID