对桌子设计感到困惑。如何存储多个数据
Posted
技术标签:
【中文标题】对桌子设计感到困惑。如何存储多个数据【英文标题】:Confused about table design. How to store multiple data 【发布时间】:2011-03-24 08:10:39 【问题描述】:我有一个用于存储邮递员覆盖区域的表格。它有两个字段
邮递员 覆盖密码
我要实现的是,当用户在文本框中输入密码时,会显示覆盖该密码的邮递员列表。
我的疑问是,我如何在表格中输入值
1. Multiple pincodes stored in single row like
postmanid->1, covering_pincode-> 626123, 626124, 626432, 654564
或
2.按每个单独的字段存储每个密码,例如
postmanid->1, covering_pincode->626123,
postmanid->1, covering_pincode->626124,
postmanid->1, covering_pincode->626432,
postmanid->1, covering_pincode->654564
请帮忙看看哪个最适合通过密码搜索表格
【问题讨论】:
【参考方案1】:规范化规则说:使用第二个!
http://dev.mysql.com/tech-resources/articles/intro-to-normalization.html
【讨论】:
【参考方案2】:你真正想要的是第二张桌子
covering_pincodeid->1,postmanid->1,convering_pincode->626123 coverage_pincodeid->2,postmanid->1,convering_pincode->626124 covering_pincodeid->3,postmanid->1,convering_pincode->626125
【讨论】:
【参考方案3】:我会将每个值作为单独的行存储在您的表中,这样可以更轻松地添加/编辑/删除新值,而无需附加或提取单个密码。
在数据库表上使用compound key,您不需要主键,也不应该有重复。
【讨论】:
以上是关于对桌子设计感到困惑。如何存储多个数据的主要内容,如果未能解决你的问题,请参考以下文章