我正在类似于Craigslist的网站上工作,用户可以在不同城市进行发布和销售物品。我的网站和Craigslist之间的一个区别是,您将能够通过邮政编码进行搜索,而不是将所有城市列在页面上。数据库布局帮助
我已经有了邮政编码数据库,它包含了每个城市的所有城市,州,纬度,经度和邮政编码信息。好的,所以要深入了解我需要完成的工作以及我需要帮助的内容:
1.)虽然我有ZIP Code数据库,但它并没有完全适合我的使用。 (我下载了互联网的免费从http://zips.sourceforge.net/)
2)我需要帮助建立我的数据库结构(例如:我有多少种不同的表应该使用,我应该如何将它们链接)
我将使用PHP和MySQL。
我们的这些我的想法至今上的数据库如何可以设置:(我不知道这是否会工作,虽然)
场景:
有人去主页和它会告诉他们,“请输入您的邮政编码。”例如,如果他们输入“17241”,则此邮政编码适用于位于宾夕法尼亚州的Newville市。在当前数据库设置下查询将如下所示:
SELECT city FROM zip_codes WHERE zip = 17241;
查询的结果是“Newville”。现在我在这里看到的问题是,当他们想要在网站的Newville部分发布某些内容时,我必须为Newville城市发布一个完整的表格设置。这里有超过42,000个城市,这意味着我将不得不拥有超过42,000张桌子(每个城市一张桌子),这样就不得不这样做。我想这样做的一种方式是在邮政编码数据库中添加一个名为“city_id”的列,该列将是分配给每个城市的唯一编号。举例来说,纽维尔市的city_id为83.因此,如果有人来纽维尔市上市,我只需要另一张桌子。那一个其他的表将会像这样设置:
CREATE TABLE postings (
posting_id INT NOT NULL AUTO_INCREMENT,
for_sale LONGTEXT NULL,
for_sale_date DATETIME NULL,
for_sale_city_id INT NULL,
jobs LONGTEXT NULL,
jobs_date DATETIME NULL,
jobs_city_id INT NULL,
PRIMARY KEY(posting_id)
);
(该供销售和job_列名称是类型贴子的类别的用户将能够下单,将会有更多种类的不仅仅是这两个但这只是举例)。
所以现在,当,当有人谈到网站,他们正在寻找的东西买与不卖,他们可以输入自己的邮政编码,17241,例如,这是将要运行的查询:
SELECT city, city_id FROM zip_codes WHERE zip = 17241; //Result: Newville 83
(请注意,我将使用PHP存储用户在SESSIONS和Cookies中输入的邮政编码以便在整个网站上记住它们)
现在它会告诉他们“请选择您的类别”。如果他们选择类别“待售物品”,那么这是运行和结果排序的查询:
SELECT posting_id, for_sale, for_sale_date FROM postings WHERE for_sale_city_id = $_SESSION['zip_code'];
将这项工作?
所以现在我的问题是每个人都会这样做吗?我很确定它会,但我不想把这件事情设置,并意识到我忽略了一些东西,必须从头开始。欢迎任何意见和想法,我会倾听任何有想法的人。我真的很感谢提前的帮助:d
这将工作,不要担心麻烦,先建立一个工作基本原型,然后添加功能:) – Konerak 2010-05-10 19:33:51