iOSアプリケーションとの通信にバックエンドサーバーとAPI(PHP)を設定する必要があるクライアントからプロジェクトを受けました。私はアプリについてあまり詳しく説明することはできませんが、ほとんどの場合、それは社会的に基づいているため、リクエストの受信時にデータベースを常に更新する必要があります。このデータベースはどのように管理すればよいですか?
現在、データベースは3つのテーブルで構成されています(コメントはすぐに4番目にあります)。ユーザー、開催地、および待ち行列。現時点では、私がリクエストするたびに、関連するデータをデータベースから取得するだけですが、データベースの「スケーラビリティ」を向上させる方法や、使用方法を実装する必要があるのかどうか疑問に思っています。 )memcachdやRedisなどを改善するためにアプリがソーシャルであり、潜在的に大きなユーザーベースを持つ可能性があるので、これは必要ですか?そして、毎秒何百ものリクエストに対して良好なパフォーマンスの良いデータベースを使用していますか、別のデータベースに切り替える必要がありますか?
ありがとうございました。
P.私の構造を自由に選ぶことができます。誰でも興味を持ったポストに入れてください。
CREATE TABLE `Queues` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userID` int(11) NOT NULL,
`Creation_Date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Last_Updated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`venueID` int(11) NOT NULL,
`Wait_Time` int(10) NOT NULL,
`Line_Length` int(10) NOT NULL,
`Note` varchar(250) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;
CREATE TABLE `Users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`First_Name` text NOT NULL,
`Last_Name` text NOT NULL,
`Username` text NOT NULL,
`Password` text NOT NULL,
`Email` text NOT NULL,
`Signup_Method` text NOT NULL,
`Signup_Date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Number_of_Lines` int(11) NOT NULL,
`Number_of_Venues` int(11) NOT NULL,
`Last_Updated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=27 ;
CREATE TABLE `Venues` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userID` int(11) NOT NULL,
`foursquareID` int(11) NOT NULL,
`Name` text NOT NULL,
`Latitude` text NOT NULL,
`Longitude` text NOT NULL,
`Address_Line1` text NOT NULL,
`Address_Line2` text NOT NULL,
`Post_Code` text NOT NULL,
`Country` text NOT NULL,
`Description` text NOT NULL,
`Created_At` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Last_Updated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;