我在下面有这个数据库。我想知道如何使用ID来识别每条记录。
一切都来自classified_table
!
两个问题:
在这种情况下,我应该在每个PK上使用AI吗?
有人可以给我完整的代码,仅从ad_id
(例如“bmw_330ci_8939483”)选择整个分类吗?
我是规范化数据库的新手,并且在数据库工作方面做得很好,所以非常感谢详细的说明......如果你发现这个数据库中有任何“错误”,请告诉我。
category table:
cat_id (PK)
cat_name
category_options table:
option_id (PK)
cat_id (FK)
option_name
option_values table:
value_id (PK)
option_id (FK)
value
classifieds table:
classified_id (PK)
ad_id (VARCHAR) something like "Bmw330ci_28238239832" which will appear in URL
poster_id (FK)
cat_id (FK)
area_id (FK)
headline
description
price
etc....
posters table:
poster_id (PK)
name
email
tel
password
area table:
area_id (PK)
area
community
由于
答案 0 :(得分:0)
我会在我会进行大部分搜索的字段上自动增加(AI)。 AI使得返回结果变得更容易,但是存在可能导致数据库速度变慢的性能问题。
关于查询,我不确定您想要返回什么,但此查询返回给定classified_id
ad_id
SELECT classified_id FROM classifieds_table WHERE ad_id = "bmw_330ci_8939483"
要在分类广告代码和列广告ID 中执行单个插入,值 audi a4 将为:
INSERT INTO classifieds_table ad_id VALUES "audi_a4"
或者使用同一个表,多个字段和多个值的多个插入将是:
INSERT INTO classifieds_table (ad_id, poster_id) VALUES ("audi_a4", 10)
注意我遗漏了classified_id
,因为如果您选择自动递增,它会自动分配一个值,而不会明确指定一个值。
查看MySQL :: Building a Database-Driven Website using PHP and MySQL了解更多教程。
答案 1 :(得分:0)
对PK使用自动增量听起来很合理,因为听起来你已经想要使用代理键并且自动增量使得插入非常简单。值得一看有关how to pragmatically choose what primary key to use的讨论。