代码之家  ›  专栏  ›  技术社区  ›  Jim

为公司存储和选择多个州/城市的最佳方法?

  •  0
  • Jim  · 技术社区  · 16 年前

    我有公司A。我需要将这个公司链接到多个州的能力,每个州又可以链接到多个城市。例如:

    Company A
             \
              - State A
                      |-City A
                      |-City B
             \        |-City C
              - State B
                      |-City A
                      |-City B
             \        |-City C
              - State C
                      |-City A
                      |-City B
                      |-City C
    

    我的问题是:

    1. 把这个放在桌子上最好的方法是什么?
    2. 允许用户在不刷新多个页面的情况下选择此选项最简单的方法是什么?

    我将ASP.NET(框架3.5)与C_一起使用。如果周围有任何可以做到这一点的控制,最好也有一个指向它们的指针。

    谢谢,

    吉姆

    编辑: 例如,我需要选择“A公司”。然后选择“状态A”。在“状态A”下,我选择“城市A,B&C”。然后选择“State B”(状态B),并在该项下选择“City A&B”(城市A&B)。

    2 回复  |  直到 16 年前
        1
  •  2
  •   Matthew Jones    16 年前

    你可能想把这个放在四张桌子里

    **Companies**
    Name OtherInfo CompanyID
    
    **States**
    Name OtherInfo StateID
    
    **Cities**
    Name StateID CityID OtherInfo
    
    **CompaniesInCities**
    CompanyID CityID
    

    这样,州和城市就可以脱离公司而存在。

    至于要选择它们的控件,如果要选择单个城市,请使用Ajax CascadingDropDownList 可能是最好的选择。

    在没有多页刷新的情况下进行此操作,至少如果我正确理解您的意思,对用户来说将是非常困难的,并且可能会令人困惑。你最好的办法是让他们尽可能无痛,这可能涉及到使用Ajax,也可能不涉及使用Ajax。

        2
  •  0
  •   RC.    16 年前

    要回答您的第一个问题,我会将其存储如下:

    STATE
    ----------------------------
    STATE_KEY                      NOT NULL NUMBER                                                                                                                                                                                        
    COUNTRY                        NOT NULL VARCHAR2(3)    (ISO 3-letter code)                                                                                                                                                                               
    STATE_SHORT                    NOT NULL VARCHAR2(30)                                                                                                                                                                                  
    STATE_NAME                     NOT NULL VARCHAR2(30)  
    
    
    CITY
    ----------------------------
    CITY_KEY                       NOT NULL NUMBER                                                                                                                                                                                        
    STATE                          NOT NULL NUMBER    (FK into STATE)                                                                                                                                                         
    CITY_NAME                      NOT NULL VARCHAR2(30)                                                                                                                                                                                  
    LAT                                     NUMBER                                                                                                                                                                                        
    LOG                                     NUMBER  
    
    COMPANIES
    ----------------------------
    STATE_ID NUMBER NOT NULL      (FK into State)
    .... Other Data Cols.....
    
    
    

    您可以考虑做的一件事是将公司与City Key和FK链接到City,并拥有一个类似于USA;FL;NULL和USA;CA;NULL的城市来代表该州内的所有城市。通过这种方式转换为基于特定城市的公司并不会真正改变您的总体计划。如果你知道你总是在与与州有联系的公司打交道,那么在公司中做州ID(如上图所示)是比较可取的。

    祝你的项目好运。