我正在创建一个网站,其中列出了每个列中可能存在的唯一/不同值。 用户将选择值并执行搜索。
我想到的两种方法:
1>在移动中,当用户选择一个表时,我将为每列运行一系列不同的命令。 我注意到这种方法有所减缓但不涉及我的工作
2 - ;为每列创建某种选项列表并保存到某种文件中。这似乎是用户最快的方法,但需要一些工作来创建不同值的表摘要文件。
有人可以提出一个好的解决方案吗?
答案 0 :(得分:0)
您的第三个选择是重新考虑您的数据库设计。如果你有重复信息的列,那么创建存储实际值的其他表可能是有意义的,然后在'main'表中只存储链接回来的id。
然后,您可以将唯一值存储在关系表中,只需调用每个相关表来创建下拉列表。
例如,假设你有一张桌子
Users
user_id
fname
lname
city
state
zip
favorite_color
如果您要获取城市和喜欢的颜色的不同值,则需要遍历所有行以确定该信息。因此,您最终会使用方法1对数据进行N * Fields扫描以填充表格。
如果您改为创建了一个包含两个附加表的布局:
City
city_id
city_name
favorite_color
favorite_color_id
color_name
然后将您的用户表修改为
Users
user_id
fname
lname
city_id
state
zip
favorite_color_id
然后你做了几件事。首先,如果您需要所有城市和颜色,您只需要浏览X记录,其中X是唯一的城市/颜色数。此外,表的总体大小用户最终会变小,因为不是一遍又一遍地存储字符串,而是存储占用空间较少的id。
最终,您最终得到了一个更强大的解决方案,该解决方案比您现在正在考虑的方法更具可扩展性。