我認爲一個例子勝過千言萬語。下載這個example,我希望是你想要的。
使用此
您可以閒逛,看看它的其餘部分是建立,我認爲。
插入表格控件後,需要右鍵單擊字段,將Host ID
和Port ID
從數字字段更改爲列表框字段。 (請注意,組合框不能在LO中用於此目的,因爲它們只能在單個字段上操作,並且您需要兩個字段,一個ID和一些對該ID進行人類可讀的引用。在Access中,可以組合使用兩個組合框中的任意一個組合框或列表框將工作。)
我故意讓主機查找使用查詢和端口查找使用SLQ,因此您可以看到獲取下拉列表的兩種最常見的方法。
有時候SQL會更好,有時Query會更好,這取決於你在做什麼。如果你的表格是這樣佈置的,你可以直接使用該表格進行下拉,即field1 =顯示的文本或值,field2 = ID鍵,按此順序。但通常我喜歡將我的密鑰ID保留爲所有表中的第一個字段,因此請勿使用此方法。
此外,我已經與左或右連接而不是內部連接相關的表。我幾乎從不使用內連接,因爲當用於鏈接查詢中的兩個表時,如果缺少任何一個,它將隱藏兩個表中的記錄,而不是將缺少的數據顯示爲我更喜歡的空容器。
其他未受請求的一般設計的技巧,我過,我希望你會考慮多年摸索出:
我發現在單數命名的多個表和記錄,並仔細堅持這一點,是最有意義的,例如IPs
表(包含多個IP記錄)和IP ID
,是表示或指向特定記錄的整數。有時候像Data這樣的單詞是沒有's'的複數形式,所以你將使用Datum作爲記錄,並使用Data作爲表格。
我認爲給出指針和目標完全相同的名稱是最有幫助的,特別是隨着數據庫的增長以及對什麼指向什麼有困惑。讓這兩個名字保持一致,更簡單一些,還有更多的證明。換句話說,在主表中使用名爲Host ID
的字段,這指向查找表中名爲Host ID
的字段。 (其他人稱這是一個外鍵查找,但我從來沒有發現這個名字非常有用)。
而且我總是嘗試使用名稱本身後綴爲'ID'的名稱命名主鍵,而不是其他一些文字或字符串。這樣當我看到一個ID時,我確信它與哪個表相關聯。因此,例如,如果該表名爲Hosts
,則主鍵始終爲Host ID
(而不是Hosts ID
,因爲這可能是複數,實際上,ID僅引用一條記錄,而不是全部記錄)。例如,您喜歡的IP ID
或IP_ID
都可以正常工作。我發現IP ID
(帶空格)更容易讀取和輸入類型,因爲它允許使用多個單詞的更復雜的名稱,如。空格鍵比下劃線更容易。但是這假定你必須引用你所有的標識符,我總是這麼做,但並不總是必需的。我喜歡嚴格遵守這樣的一些基本規則。
希望這可以幫助你。
這看起來對我不利。但我需要更多的功能...有沒有辦法在列出IP之前搜索特定主機名?所以我只看到特定主機的IP。我知道我可以讓一個查詢搜索特定的名稱(LIKE'%'||:Hostname ||'%'),但我不能像你的那樣使用這樣的函數。 –
更改Hosts加入的方式(切換右/左)。然後在查詢中指定您的主機作爲條件。還有其他方法可以搜索,但這是另一個問題的主題。建議你也看看ask.libreoffice.org –
我需要讓它在查詢中搜索還是有另一種方法會更容易? –