保存MySQL中不存在的记录

Dak*_*h B 4 mysql sql database database-design

比方说,我有一个预先定义的表格cities,几乎所有的城市都在我的国家.

当用户注册自己(用户表)时,表中的列存储cities_id表中user的城市ID cities(外键,参考表城市),类似于

CREATE TABLE `cities` (
    `id` int,
    `city_name` varchar(100)
)

CREATE TABLE `user` (
    `id` int,
    `name` varchar(60)
    `****`
    `cities_id` FK
)
Run Code Online (Sandbox Code Playgroud)

用户表存储城市ID.

但是,如果我错过了几个城市...用户如何将他的城市名称保存在不接受任何城市名称但只接受ID的用户表中.

我能有一个更加列city_name在表中的cities_id之后user

CREATE TABLE `user` (
    `id` int,
    `name` varchar(60)
    `****`
    `cities_id` FK
    `citiy name` varchar(100)
)
Run Code Online (Sandbox Code Playgroud)

记录用户在注册时输入的数据?可以这样做吗?

小智 6

你可以在城市表标签中添加一个类型,用户找不到他们对应的城市允许他输入他所在城市的名称,然后你在城市中,并将在表格类型中创建相应的记录标记为特殊状态(方便操作人员检查和更正),同时将记录ID保存到用户记录中

CREATE TABLE `cities` (
    `id` int,
    `city_name` varchar(100),
    `type` int,
)

CREATE TABLE `user` (
    `id` int,
    `name` varchar(60)
    `****`
    `cities_id` FK
)
Run Code Online (Sandbox Code Playgroud)