簡體   English   中英

如何使用 Java 數據結構?

[英]How to Use Java Data Structures?

給定郵政編碼和電影名稱,該函數將返回具有相應電影名稱和郵政編碼的影院列表?

我遵循的方法:

創建兩個表劇院和電影並將數據存儲在那里。

Table:
theatres:                                 films     
SNO TheatreName                           SNO zipcode Moviename
1   Hari                                   1  180004  Transporter
1   Habitz                                 2  180010  Mi Impossible
2   Shakuntala

在啟動期間,我將從數據庫中獲取詳細信息並將其放入哈希映射中。 我的 Hashmap 將包含電影對象和所有劇院的相應列表。所以當我檢索給定的電影對象時,它將提供所有劇院的集合。

這是正確的方法嗎? 這種方法的唯一問題是我們必須為所有會消耗內存的 SNO 維護單獨的列表 theatrename。 誰能告訴我更好的方法?

一個劇院可以有很多部電影。 一部電影可以在許多影院上映。 但是電影和戲劇可以彼此獨立存在。 我會在劇院和電影之間創建一個映射表。

通常在像您這樣的情況下,更好的方法是在數據庫級別而不是代碼級別創建這些關系,您可以簡單地添加第三個表來打破您在此處擁有的這種多對多關系。

Film-Theater
FSNO   TSNO
1      1
1      2

現在的復雜性在於從數據庫中獲取這些數據,而不是代碼設計的復雜性。

好吧,我認為您的解決方案中有兩個誤解。

  1. 您將zipcode字段放入films表中。 郵政編碼與劇院有關,與電影無關! 當您意識到電影可以在具有不同郵政編碼的多個地方顯示時,這一點更加明顯。
  2. 正如其他人已經提到的,一個劇院可以播放幾部電影,並且可以在多個劇院觀看一部電影。 對其進行建模的最佳方法是創建第三個表

theatres:                   films:                         program:
id   TheatreName            id     zipcode Moviename       filmId  theatreId
1    Hari                   1      180004  Transporter     1       1
2    Habitz                 2      180010  Mi Impossible   1       2
3    Shakuntala                                            2       3
  1. 此外,我懷疑您正在使用 Hasmaps 來鏈接您的表格。 您最好在 SQL 查詢中使用內部聯接。 即使您不這樣做,如果您的數據庫很大,將整個數據庫放在 HashMap 中也是一個壞主意。 (對不起,如果我在這一點上錯了;))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM