二人のシフトを管理できるiOSアプリを作成しようと考えています。
システム構成的には、クライアントサイドはswift3で実装して、サーバサイドはgoからDBを操作しようと考えていました。

そこで、DB設計をしていたのですが、二人のリレーションをどうやって定義すれば良いかという問題に当たりました。
僕が考えた候補は二つあり

CREATE TABLE `users` (
  `id` INTEGER AUTO_INCREMENT,
  `name` VARCHAR(255),
  `uuid` VARCHAR(255),
  PRIMARY KEY (`id`)
);

CREATE TABLE `pairs` (
  `id` INTEGER AUTO_INCREMENT,
  `user1_id` INTEGER,
  `user2_id` INTEGER,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`user1_id`) REFERENCES `users`(`id`),
  FOREIGN KEY (`user2_id`) REFERENCES `users`(`id`)
);

のようにユーザ間のリレーションを定義するテーブルを作成するか、

CREATE TABLE `users` (
  `id` INTEGER AUTO_INCREMENT,
  `name` VARCHAR(255),
  `uuid` VARCHAR(255),
  `partner_id` INTEGER,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`partner_id`) REFERENCES `users`(`id`)
);

のように一つのテーブルで自身のテーブルを参照する、という感じです。
どちらの方が扱い安く、スマートでしょうか?
また、もっといい設計があれば教えていただきたいです。
また、iOSでデータベースを扱うのにはRealmが一般的だと思いますが、
複数のiOSの端末間で扱う場合はサーバを立ててDBを扱うやり方で大丈夫でしょうか?
ご回答お待ちしております。