gpt4 book ai didi

mysql - 如何在 MySQL 中为 "location"存储 "event"

转载 作者:行者123 更新时间:2023-11-29 07:00:35 24 4
gpt4 key购买 nike

我有两个实体:事件位置。关系是:

1 个事件 可以有1 个位置1 个位置 可以有许多事件

基本上我想存储事件。每个事件都在特定位置举办。当我说具体位置时,我的意思是:

Street, Number, City, Zip Code, State, Country

我基本上有一个设计问题,我需要一些帮助:

1 - 现在我正在考虑执行以下操作:

事件表将有一个 location_id,它将指向位置表中的特定位置行。这会发生什么:我将在每一行中有许多重复的值。例如,如果一个事件发生在旧金山的 356 Matilda Street,而另一个事件发生在旧金山的 890 Matilda Street。 Matilda Street 和 San Francisco 的值将在位置表中重复多次。我怎样才能重新设计它以使其正常化?

所以,基本上,我很想听听一个关于关系数据库(如 MySQL)来解决这个问题的好方法。

最佳答案

如果您想要一个严格规范化的数据库,您可以有一个街道名称表,另一个城市名称表,另一个州名称表,等等。您甚至可能有一个额外的 location 表,其中包含街道、城市和州的独特组合;每次在以前未知的位置发生事件时,您都会向该表中添加行。然后,您的每个事件都会引用 location 表中的相应行。

但实际上,有时将位置数据直接存储在 events 表中并容忍额外的内存使用会更好;速度和内存使用之间始终存在权衡。

另一个考虑因素:如果街道被重命名会怎样?您希望旧事件与旧名称或新名称相关联吗?

关于mysql - 如何在 MySQL 中为 "location"存储 "event",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10365626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com