我正在建立一个黄页网站。我尝试了多个数据库结构。我不确定哪一个是最好的。我考虑过这几点,
将所有业务数据 - 名称,电话,电子邮件等保存在一个表中,将标签列表保存在另一个表中,并在第三个表中保存标签 - 数据关系的数据ID和标签ID。我发现这很麻烦,因为我将直接在数据库中做大部分事情(至少最初是在发布之前),因此在我的情况下分发所有内容都会有问题。这个是我必须承认的一个干净的解决方案。
将商家条目保存在一个表中,其中包含一个单独的标记列(每个条目都包含逗号分隔(或JSON)标记)。然后使用类似查询或全文搜索标记来检索结果。随着数据库大小的增加,这个速度会变慢,速度会变慢。它也不容易维护 - 假设我必须重命名标签。
(我的首选)根据类型在不同的表格中分发商业数据 - 所有银行在一个,酒店,餐馆等的单独表格中。包含用于从表中搜索数据的规则的所有标记的单独表。这是一个详细的解释。
商务表: college_tbl,bank_tbl,hotel_tbl,restaurant_tbl ......等等
标签表
ID | Biz Table | Tag Name | Tag Key | Match Rule (col:like_query_part)
1 | bank_tbl | Citi Bank Branches | ['citi','bank'] | 'name:%$1%$2%'
2 | restaurant_tbl | Pizza Hut Restaurants | ['pizza','hut'] | 'name:%$1%$2%'
3 | hotel_tbl | The Leela Hotels | ['the leela'] | 'name:%$1%'
然后我会使用“匹配规则”'在类似的查询中从“Biz Table”中获取结果'标记名称'。
我继续推进第三种方法。我觉得它很简单,减少了对第三个数据标签关系表的需求,重命名很容易,如果表的条目有限,性能不会下降 - 比如说每个表最多100万。
我在过去的15天里摸不着头脑,找到最好的结构,觉得这个在我的情况下非常好。
请建议更好的方法,或者这种方法以后会遇到一些问题。
答案 0 :(得分:0)
使用数字1.期间,句号。
错误是“直接在数据库中做事”,而不是先开发API。
Number 2有一个优势 - FULLTEXT
搜索。在拥有可用的API和一些数据后,可以将其添加到#1。
3号(多个类似的表)是一个fisaco。 无数 Q& A询问此类问题;回复总是“不”。