日記的なiOSアプリを作っている初心者です。

現在ローカルデータベース(RealmSwift)の設計を行っています。日記データそれぞれにつけることができるタグ機能を実装したいと考え、やり方を検索し、
http://colo-ri.jp/develop/2012/02/tag-database-schema-methods.html
上記のサイトにあったToxi法を使用しようと考えました。

次に、モデルを以下のように作成しました。

class Notedatas: Object {
    dynamic var objectId = ""
    dynamic var userId = ""
    dynamic var noteText = ""
    dynamic var menuName = ""
    dynamic var PhotoPath = ""
    dynamic var goaltime:Double = 0
    dynamic var timer:Double = 0

    override static func primaryKey() -> String{
        return "objectId"
    }
}

class tag:Object {
    dynamic var id = ""
    dynamic var tagname = ""

    override static func primaryKey() -> String{
        return "id"
    }
}

class Notedatas_tag:Object{
    dynamic var id = ""
    dynamic var Notedata_id = ""
    dynamic var tag_id = ""

    override static func primaryKey() ->String{
        return "id"
    }
}

ここから、おそらく3つのテーブルのリレーションを定義しなくてはならないのだと思うのですが、

どのようにリレーションを繋げばよいのか?

また、実際にデータを追加するときに,3つのテーブルにどのように追加するのか?
表示するときのタグの付け方、タグから検索するときの実装などがわかりません。

タグ機能実装のデータベースの設計や考え方、やり方を教えてください。