我有公司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
我的问题是:
我使用ASP.NET(Framework 3.5)和C#。如果周围有任何控件可以做到这一点,那么指向它们的指针也是最受欢迎的。
谢谢,
吉姆
修改例如,我需要选择“公司A”。然后选择“状态A”。在“A国”下,我选择“A,B& C”。然后选择“状态B”,然后选择“城市A& B”。
答案 0 :(得分:2)
您可能希望将其存储在四个表中
**Companies** Name OtherInfo CompanyID **States** Name OtherInfo StateID **Cities** Name StateID CityID OtherInfo **CompaniesInCities** CompanyID CityID
这样,州和城市可以在没有公司的情况下存在。
对于选择它们的控件,如果要选择单个城市,AJAX CascadingDropDownList可能是最佳选择。
在没有多页刷新的情况下执行此操作,至少在我理解正确的情况下,这将非常困难,并且可能会让用户感到困惑。你最好的方法是让它们尽可能无痛,这可能涉及也可能不涉及使用AJAX。
答案 1 :(得分:0)
要回答你的第一个问题,我会把它存储起来:
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.....
您可能考虑做的一件事是将公司与城市钥匙和FK连接到城市,并拥有像美国这样的城市; fl; null和usa; ca; null代表该州内的所有城市。这种方式转换为基于特定城市的公司并不会真正改变您的整体方案。如果您知道您将始终与处理与州相关联的公司,那么在公司中执行state_id(如上所示)将是首选。
祝你的项目好运。