我有一个我已经制作的GPS安卓应用程序。它使用SD卡上的SQLite数据库来存储位置数据。我正在尝试为数据库组成一个ERD(实体关系图)。这是我遇到问题的地方。该数据库有一个用于轨道的主表和一个用于航点组(一个或多个航点的集合)。这些表中没有位置数据,只有轨道或航点组的名称,开始/停止时间和日期以及uid。对于这些表中的每一行,都会生成一个包含纬度和经度信息的新表。在子表中,每行是一个点或顶点。子表名是" master"的uid。表加" t _"或" w _"对于traks或waypoints。这就是我使用https://www.draw.io:
提出的http://s10.postimg.org/usqsrwjmx/Untitled_Diagram.png
(抱歉,我没有10个重复点发布图片,哈哈)
我认为表之间的组合链接是正确的,因为只有主表中有一行时子表才存在。如果删除主行,则还删除相应的子表。但是如何显示主表中每一行都有一个子表?它也有点奇怪,因为子表中不需要FK,因为表名提供了这个功能。
我不认为我想在这个较晚的日期更改我的数据库结构,因为该应用程序很快就会被发送出去进行测试,但我会对此问题的其他(高级)数据库设计感兴趣。
答案 0 :(得分:0)
在关系数据库中链接数据。但是,在您的数据库中,不仅链接了数据,还链接了包含表名的数据。因此,您将内容与结构混合在一起。
据我所知,你无法在ERD中显示它。您无法在dbms中正确实现此功能(这样您的dbms就会知道结构并帮助您获得适当的约束)。
您没有正确使用RDBMS。所以尽管日期较晚:如果我在你的位置,我会把它改成一个合适的关系数据库模型。
编辑:一个合适的关系模型只是只有一个 track_detail表,其中轨道ID在列中而不是在其名称中。 waypoint_detail与master的航路点id相同。实际上没有太大的变化。