【发布时间】:2011-06-25 13:38:42
【问题描述】:
假设您有一个固定的值列表(字符串):“None”、“Skype”、“ICQ”、“GoogleTalk”、“MSN”等。
用户只能选择该字符串中的一个作为他的主要即时消息应用程序。
将此字段称为假设表ContactInformations 的IM。使用 SQL 表,您将如何为 IM 字段建模?解决方案应该让填充列表框的代码从数据库加载可能的选择。当用户做出选择并按下“保存”按钮时,代码应更新IM 字段。
所以,我会这样做:
表ContactInformations 具有IM 类型的int 字段,引用IMListID 字段。
IMListID 是下表的键:
IMNameList
IMListID int, primary key, not null
text varchar(100)
所以,在创建数据库时,我会将支持的即时消息应用程序的所有名称插入到IMList 表中,我会将ContactInformations 的IM 字段设置为默认值0 ("无”)。
填充可能的 IM 应用程序名称列表很容易(从 IMNameList 表中获取),更新不太容易,因为我隐含假设“none”的键是 0,“Skype”的键是 1 , "ICQ" 是 2 等等,我做了另一个隐含的假设:当用户从列表框中选择 "Skype" 时,"Skype" 的索引是 1。
你会如何解决这个问题?
【问题讨论】:
标签: sql database-design