我正在尝试在Android中创建预订应用程序。我有一个连接到的mysql数据库。
目前,我有两个表格 - Customer Details
和Customer login
,其中p_ID
作为primary key
登录,p_ID
为foriegn key
1}}在详细信息表中。每当有人注册时,该值设置为自动递增。但是,我不明白如何将这些链接在一起。由于它们是唯一的并且自动递增,因此无法在不手动填充它们的情况下看到链接它们的方式。
所以我的问题是:我完全错了吗?我应该手动设置ID吗?例如,当用户注册时,如何在保持匹配ID的同时添加到两个表中,将登录表链接到一般客户详细信息的正确方法是什么?
例如:
login
表:
P_ID (PK) | username | password
-------------------------------
1 | me | me123
details
表:
name | age | location | P_ID (FK)
---------------------------------
john | 40 | UK | 1
答案 0 :(得分:1)
您的数据库结构没问题,但是您无法使用单个SQL查询在两个表中插入数据。而不是那样,您可以将事务与 <android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="256dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
android:textAlignment="gravity"
android:layout_gravity="center"
android:foregroundGravity="center">
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_gravity="bottom"
app:tabContentStart="72dp"
app:tabMode="scrollable"
tools:background="@android:color/holo_orange_light"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_collapseMode="parallax"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
tools:background="@android:color/holo_green_light"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:background="@android:color/holo_blue_light"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="8dp"
android:src="@drawable/ic_action_add_issue"
app:borderWidth="0dp"
app:fabSize="mini"
app:layout_anchor="@id/tabs"
app:layout_anchorGravity="center|left|start"
tools:background="@android:color/holo_green_light"/>
</android.support.design.widget.CoordinatorLayout>
函数一起使用:
LAST_INSERT_ID()
由于您的主要ID是BEGIN;
INSERT INTO login (`username`, `password`)
VALUES('me', 'me123');
INSERT INTO datails (`P_ID`, `name`, `age`, `location`)
VALUES(LAST_INSERT_ID(), 'john', '40', 'UK');
COMMIT;
表中的自动增量,因此您无需关心此类方法。 login
表中的外键不能是自动增量,而只是普通整数。