我打算创建一个通过EditText获取String人名的应用程序,然后将它们保存在数据库中有一列的table1中。 还有另一个table2,其中一些列等于table1中的人名数,行是人的分数(整数)。 我有:“MainActivity”显示table2,“AddPersonActivity”显示table1并允许用户添加人员,“AddScoreActivity”允许用户为每个人插入分数,“dbHelper”类管理我的数据库。 我需要AddScoreActivity来为每个人动态显示EditText,并使用dbHelper将它们放在table2中的正确位置。 由于我是Android的新手,任何机构都可以给我一个辅助或示例,以便用户可以插入他想要的人。
答案 0 :(得分:0)
在典型的关系数据库中,您无法动态添加列。
话虽如此,一些数据库(例如PostgreSQL)实现了array
数据类型。如果列是数组类型,则它可以包含多个值。您甚至可以拥有多维数组。例如,这是一个典型案例:
create table person (
id int primary key not null,
properties text[]
);
此表中的每一行都包含一个id,以及存储在数组中的零个或多个属性值。
通常情况下,如果你有这种要求,你可以通过将表分成两个来使用更高的正常形式,如下所示:
create table person (
id int primary key not null
);
create table person_property (
value text,
person_id int not null,
constraint fk_prop_person foreign key (person_id)
references person (id)
);
这种方式更容易管理数据。在第二个结构中: