我是数据库新手。我有一个带有MySQL db的分类广告网站,我很快就要使用SOLR来索引它们了。然后,每当查询完成时,SOLR将返回ID:s并且我将这些ID:s匹配到MySQL数据库并获取要显示的广告。
无论如何,我在制作数据库时遇到了麻烦。
用户可以从下拉列表中选择要搜索的类别。让我们说他们选择CARS。然后显示一个div,其中包含“YEAR,FUEL,GEARBOX,PRICE”的下拉列表。然后他们也可以选择LOCATION。如果他们愿意,他们也可以键入一个查询字符串。所有都是可选的。
我该如何设置?
例如,我现在有以下的CARS,我必须为摩托车,卡车,踏板车制作字段/表格......但到目前为止,我只有CARS。 你会如何进行结构和设计? 我正在考虑为每个类别(TRUCKS,MC,HOUSES等)做其中一个。
抱歉,但我无法让标签在这里工作,任何人都可以编辑它,所以它看起来“更具可读性”!
Fält Typ Null Standard <br>
id int(7) Nej
ad_id varchar(62) Nej
area varchar(40) Nej
area_community varchar(50) Nej
price int(9) Nej
year int(4) Nej
mileage int(6) Nej
gearbox varchar(12) Nej
fuel varchar(12) Nej
insert_date timestamp Nej CURRENT_TIMESTAMP
poster_name varchar(40) Nej
poster_email varchar(50) Nej
poster_tel varchar(20) Nej
poster_password varchar(15) Nej
headline varchar(40) Nej
description text Nej
salebuy varchar(7) Nej
total_pics int(2) Nej
changeable int(1) Nej
hide_tel int(1) Nej
ad_category varchar(60) Nej
谢谢,如果您需要更多输入,请告诉我,我会更新此问题。
答案 0 :(得分:0)
我建议您创建以下内容:
1. Category table CategoryID -> Primary key CatName -> truck, location, small ad etc 2. CategoryPropertyPermitted Table CategoryID -) PropertyID -) Primary key PropName -> year, mileage, colour etc 3. Persons Table PersonID -> Primary key PersonSurname DateAdded Etc 4. Ad Table AdID -> Primary key PersonID CategoryID Notes DateAdded Etc 5. PersonCategoryProperty ProperytyID -) CategoryID -) AdID -) Primary key PropertyDetails -> 1967, red, ford Etc
答案 1 :(得分:0)
为了帮助您创建和可视化,我会使用mysql workbench。
接下来,从Remou的评论开始。他将海报,广告和产品全部分开了。然后考虑人们想要为每个人发布的可能的细节(变速箱等,如你所提到的)。
现在是棘手的部分 - &gt;你想给海报多少控制权?您希望结果集有多好?
如果需要精确的结果集,请为每个元素创建另一个表,并为cars表中的相应项创建每个元素的外键。然后每个项目都有一个允许的条目列表,如果您信任您的用户,他们可以添加新的条目。这意味着每个人都会从相同的选项中进行选择,这将导致更一致的结果(例如,有人可能会说4.5升,有些人可能会说4.5L,因此从下拉列表中选择它会消除术语中的欺骗行为)。这也会使你的发布变得更复杂,但实际上对最终用户来说更容易,因为它主要是下降。
否则,您可以只允许cars表中每个项目的文本,但您的查询结果更有可能缺少结果。
最后,对database normalization进行一些研究,并尝试将所有内容分解成块,正如Remou指出的那样。