PHP和MySQL专家在swift[关闭]中感觉像个哑巴。

问题描述 投票:-1回答:1

我是一个充满激情的非专业程序员,我想说我是php和MySQL方面的专家--我能够用php编程一整个web应用,并拥有iOS应用的外观和感觉,但......它仍然是一个web应用。

在过去的几年里,我多次从swift和Xcode开始。但是因为我觉得很不一样,而且感觉在Xcode中用Swifft处理代码变化非常频繁(比如SwiftUI),所以我每次都会停下来。

我心中有一个非常酷的应用,但我已经厌倦了下一个php web应用项目,我真的想在iOS中实现它。随之,我直接困惑于数据如何存储。

为了发挥我的技能,我可以创建一个php API和一个MySQL数据库,并使用http请求。很公平...

但是如果用户没有网络连接怎么办?我想到了有两个数据库--一个在设备上,一个在互联网上。我已经用核心数据和swift ui做了一个to do list教程。

要有东西可谈。

当应用程序启动时,应该有一个账户列表视图。每个账号都有一个唯一的id,用户共享唯一的id时,可以添加账号。有了这个,多个用户就可以访问同一个数据项。一个人创建账户和随机的唯一id,另一个用户可以将账户项目添加到他的应用程序中。

每个账户都有作为与该账户相关的多个用户的列表,每个账户都有一个可以由每个用户创建的交易列表。

此外,我可以决定我是哪个用户。在php中,我会使用一个用户列表的下拉菜单,并将选择的值存储在一个会话中。

如果能帮助理解,我添加我的数据库结构。

CREATE TABLE `pay_accounts` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `share_id` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `currency` (`currency`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `pay_transaction_users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `user` int(11) unsigned DEFAULT NULL,
  `amount` float DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `user` (`user`),
  CONSTRAINT `pay_transaction_users_ibfk_1` FOREIGN KEY (`user`) REFERENCES `pay_users` (`id`) ON DELETE SET NULL ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `pay_transactions` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `date` timestamp NULL DEFAULT NULL,
  `payer` int(11) unsigned DEFAULT NULL,
  `amount` float DEFAULT NULL,
  `purpose` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `payer` (`payer`),
  CONSTRAINT `pay_transactions_ibfk_1` FOREIGN KEY (`payer`) REFERENCES     `pay_users` (`id`) ON DELETE SET NULL ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;---------------

CREATE TABLE `pay_users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `account` int(11) unsigned DEFAULT NULL,
  `mail` varchar(255) DEFAULT NULL,
  `activity` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `account` (`account`),
  CONSTRAINT `pay_users_ibfk_1` FOREIGN KEY (`account`) REFERENCES `pay_accounts` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我的直接困惑是:在php中,现在很容易用HTML创建一个from,然后把数据添加到MySQL中......在Swift中,我完全不知道如何实现这个项目。

ios swift xcode core-data
1个回答
0
投票

在php中,现在很容易用HTML创建一个from,然后把数据添加到MySQL中......在Swift中我完全不知道如何实现这个项目。

在HTML PHP中如何实现?基本上,你在HTML中创建一个表单,然后在提交时通过 POST/GET 到你的后端,PHP处理数据库连接。

你也可以在你的iOS应用中使用同样的方法。在iOS中,你可以用不同的http请求类型来进行简单的http请求。查看 这个 线程。所以往往你会需要先进行一个认证,你把你的凭证从应用中发送到你的后端来验证用户。

从你的后端发送的数据可以是JSONXML,不管你喜欢什么。你可以在Swift Objective C中轻松解析,并在应用中创建你的对象并显示数据。如果你想在本地存储这些数据,你就这样做。这肯定是个好办法(离线缓存)。你必须决定你的应用程序应该离线工作还是不应该。两种方式都可以。

数据可以存储在本地的数据库中,甚至可以使用CoreData框架,这使得它非常容易。如果你获取新的数据,将其与现有数据合并,然后同时显示。

我有一张小图给你看,但你的方法已经很好了。我搭建了一个 "Instagram "的iOS克隆,后台使用PHP。效果还不错。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.