从UML实现数据库

时间:2013-05-08 18:46:01

标签: sqlite foreign-keys uml

我最近建模了一个基本上涉及关联的UML图。我们说代码是:

public class Seller{
    private int idSeller;
    private String name;
    private String passw;
    private List<Phone> phones = new ArrayList<Phone>();

    public Seller() {           
    }

    public Seller(int idSeller, String name, String passw, List<Phone>phones) {
        super();
        this.idSeller = idSeller;
        this.name = name;
        this.passw = passw;
        this.phones = phones;
    }

    //getters and setters
}

public class Phone {
    private int idPhone;
    private String description;
    private String number; //will have some chars in it

    public Phone() {
    }

    public Phone(int idPhone, String description, String number) {
        super();
        this.idPhone = idPhone;
        this.description = description;
        this.number = number;
    }

    //getters and setters
}

我不想限制卖家可以拥有的手机数量,而且这只是我整个代码的摘录。

现在,我需要创建我的SQLite数据库并在其中插入数据,但我对如何表示从UML到数据库的关联有点困惑。

如果我没有与OO合作,我会在电话表中放置一个关键字,指的是卖家拥有手机的ID,但OO的概念让我怀疑这是在这里做到的正确方法。

我对UML有很好的理解,但这是我第一次尝试实现UML图并从数据库加载数据。有人可以帮我说一下这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

我认为你真的需要阅读数据库理论。这是一个非常简单的模式来编写 - 几乎是一个模式的hello世界。不要认为它是UML或OO的术语 - 这些是思考数据的错误术语。您需要根据数据的组织方式进行思考。程序员的工作就是将其映射到对象中。

你有两张桌子。表一是卖家的表。它有一个id(这是你的主键),一个名字,一个密码(应该以散列形式存储,而不是以纯文本形式存储)。第二张表是手机。它有一个id(主键),一个数字和一个int类型的所有者字段,它是卖家ID的外键。

如果确实需要将数据加载到代码中,首先通过表1中的查询加载卖方结构(除阵列外)。然后查询表2以查找具有匹配卖家ID的所有手机,并循环返回将其添加到您的手机阵列。