我正在研究一个设计案例,他们讨论如何处理一个已经在开发中的系统的数据库设计。该系统用于管理公共(public) parking 场。主要争论是如何满足以下要求:
系统应允许管理每个 parking 公司的信息。
存储的数据是 parking 场的地址(详情、省、县、区)、名称、企业标识、车位数量。
系统应处理每次 parking 产生的收入报告。
这些报告应该允许按省过滤,因为公司有多个按省 parking ,其中一些位于同一地区。
有人提到ParkingLot 表必须有省、县、区的列,这是每个 parking 场的特征。
其他人说不应该。我想知道在这个特定点上,哪种方法是处理数据库设计的最佳方法。 这归结为我的问题,在这种情况下(因为必须有异常(exception))系统非常简单,这真的重要吗?
如果这些报告允许按省过滤会怎样?由于一个公司可能在同一个省有多个 parking 场,其中一些位于同一地区。
最佳答案
根据您的要求,您需要决定建模什么。
选项 1 - parking 场上的柱子
如果您将 province
、county
和 district
的列添加到 ParkingLot
表,那么您正在建模每个 parking 场都有这些东西。
在这种情况下,您的模型不包括区、县和省的主列表。您将无法验证为特定批处理输入的详细信息是否有效。
如果您从可信来源或您所在地区等处获得 parking 场,请选择此选项。此选项不允许您存储任何其他信息。例如如果您需要针对特定区域存储“区域经理”,您将无处存储它。
选项 2 - 示范区、县和省
您可以为省
、县
和地区
创建表。这些将有他们 parent 的外键。在这种情况下,您确实有一个主列表(您需要及时更新)。
然后在每个 parking 场上,您都有一个指向 district
的外键(这意味着其他列)。
如果您想根据主列表验证地区等,请选择此选项。如果您有额外的信息要针对 district
等存储,也请选择此选项。
关于database - 使用地址设计数据库的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620952/