我如何设计数据库并在Android中按类别获取数据

问题描述

|| 例如数据,如果我将数据分类为3组:景点,城市地标,公园
id      title           content          address           category

1     GeneralPark     xxxxxxxxxxx      1234road         Park

2     GreatMuseum      wwwwwwwwww       9877road         Attraction
看通用公园。它的类别是Park。并且在“吸引力”类别中也是如此。问题是..我如何设计数据库?是否可以这样做(将“停车”和“吸引力”放在同一列中):
id      title           content          address           category

1     GeneralPark     xxxxxxxxxxx      1234road         Park,Attraction
所以,如果不是,那我该如何设计数据库?我应如何实施此行以按类别检索数据;即通过吸引力
public Cursor getplaces() 
{
    Cursor c = mDb.query(Constants.TABLE_NAME_PLACE,null,null);
    return c;

}
预期结果应仅显示吸引力类别:
id      title           content          address           category

1     GeneralPark     xxxxxxxxxxx      1234road          Attraction

2     GreatMuseum      wwwwwwwwww       9877road         Attraction

4     Middlehigh-school ttttttttt       555road           Attraction

5     ShoppingMall   ssssssssss        666road           Attraction
非常感谢你的帮助。我对开发很陌生。谢谢     

解决方法

        不要将两件事(即\'Park,Attraction \')放在一栏中,这几乎总是一个错误。解决这种情况的通常方法是添加另一个包含两列的表:
create table place_categories (
    place_id int          not null references place(id),category varchar(255) not null,primary key (place_id,category)
)
通常,您通常会使用两列主键来避免重复,因此,底部会出现“ 5”约束。在“ 6”上使用外键也是一个好主意,参照完整性可以节省很多痛苦,痛苦和困惑。 然后,如果要使用地点的类别,只需加入
place_categories
select p.id
from place p
join place_categories c on (p.id = c.place_id)
where c.category = \'Attraction\'
通过这种方法,您的
place
表格将如下所示:
create table place (
    id      int          not null primary key,title   varchar(100) not null,content varchar(100) not null,address varchar(100) not null
)
数据看起来像这样:
id      title           content          address
1     GeneralPark      xxxxxxxxxxx      1234road
2     GreatMuseum       wwwwwwwwww      9877road
    ,        好的,首先,要了解关系数据库和规范化。对您来说,这可能是一件微不足道的事情,但事实并非如此。也许有人可以为您提供解决此问题的代码,但是您从中学不到任何东西。 http://en.wikipedia.org/wiki/Database_normalization http://en.wikipedia.org/wiki/Relational_database 然后,您将阅读一些SQL以一种智能的方式访问文件。 SQL> \“ SELECT DATE,NAME,ADDRESS FROM People WHERE NAME = \'Jane \'\”的示例     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...