gpt4 book ai didi

Java - 我应该使用一个字段还是一个类来解决这个问题,如下 :

转载 作者:行者123 更新时间:2023-12-04 06:51:12 25 4
gpt4 key购买 nike

我在数据库中有两个表

  • FuelStation(fuel_station_id:int(PK),fuel_station_name:varchar,fuel_brand_id:int(FK))
  • FuelBrand(fuel_brand_id:int(PK),fuel_brand_name:varchar)

  • 正如我们所看到的,这两个表都是通过链接链接的。外键(fuel_brand_id)
    现在,我想设计一个与上述数据模型相对应的对象模型,但我很困惑从以下两种方法中使用哪种方法:
  • 是否只制作一类FuelStation并将燃料品牌存储为 StringFuelStation类(class)。

  • 或者
  • 创建两个类:FuelStationFuelBrand .然后将它们与多对一的关系联系起来,因为一个加油站将只有一个燃料品牌,而一个燃料品牌可以有多个加油站。

  • 一季度。哪种方法更好?
    Q2。每种方法的优缺点是什么?

    Upto My Knowledge:

    Pros of Approach 2

    • It has made our object model more granular.

    • Acc. to good design principles, our object-model must be atleast as granular as relational-model. And approach2 follows that principle

    Pros of Approach 1

    • No need to create a separate object for FuelBrand for every FuelStation

    最佳答案

    1. make only one class FuelStation and store fuel brand as String in the FuelStation class.
    2. make two classes: FuelStation and FuelBrand. And then associate them with a Many-to-One relationship as one fuel station will have only one fuel brand but one fuel brand can have many fuel stations.


    这两种方法之间没有明确的通用选择,因为在很大程度上取决于上下文。一些决定因素:
  • 你有多少个电台和品牌?如果您有大量使用相同燃料品牌的加油站,最好避免使用第二种方法重复。 OTOH 如果实际上每个燃料品牌仅被一个站点使用(并且不会改变),则使用第一种方法是有意义的。
  • 是否可能/预期 FuelBrand属性更改,还是引入了新属性?如果是这样,最好再次使用第二种方法 - 否则 FuelBrand 中的任何更改需要更改 FuelStation类(class)。
  • 一个加油站 future 是否有可能拥有多个燃料品牌?这将再次需要第二种方法。

  • 作为底线,第二种方法更灵活,所以我更喜欢这种方法,即使现在没有可预见的变化会明确要求这种设计 - 在软件开发中,永远不要说永远:-)

    关于Java - 我应该使用一个字段还是一个类来解决这个问题,如下 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3100116/

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