2013-05-08 113 views
-1

我最近建模了一個基本上涉及關聯的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圖並從數據庫加載數據。有人能幫我說什麼是正確的做法嗎?

+0

兩個downvotes和沒有解釋。有人可以告訴我什麼是錯的,所以? – Math 2013-05-08 18:52:17

+1

您將需要數據庫表之間的外鍵。你剛剛經歷了對象關係阻抗http://en.wikipedia.org/wiki/Object-relational_impedance_mismatch – 2013-05-08 19:01:56

+0

我喜歡這個術語「對象 - 關係阻抗」,它代表了我發生的事情。謝謝。 – Math 2013-05-08 19:12:22

回答

0

我認爲你真的需要閱讀數據庫理論。這是一個非常簡單的模式來寫 - 幾乎是一個模式的hello世界。不要認爲它是UML或OO的術語 - 這些是考慮數據的錯誤術語。您需要考慮數據如何合理組織。它是程序員的工作,以後再將它映射到對象中。

你有兩個表。表一是賣家的表格。它有一個id(它是你的主鍵),一個名字,一個密碼(它應該以散列形式存儲,而不是以明文形式存儲)。第二張桌子是手機。它有一個id(主鍵),一個數字,以及一個int類型的owner字段,它是賣家ID上的一個外鍵。

當您確實需要將數據加載到代碼中時,首先通過表1上的查詢加載賣家結構(數組除外)。然後查詢表2,查找具有匹配的賣家ID的所有手機,並循環將其添加到您的手機陣列中。