DBの考え方をいくつか行い、リンクテーブルなどの基本的なテーブルを用意します。リンクは、アカウント オブジェクト/レコードを指す外部キーを持つことができます。lookups
ただし、単純化と抽象化 (たとえば、リンクをコンテンツベースのリソースとして扱う) のために、一般的なルックアップ テーブル (たとえば、 、notaccount_links
またはと呼ばれる) を介してリンクをアカウントに割り当てると考えましたlink_accounts
。
リンクは1 つのアカウントにのみ割り当てることができますが (常に 1 つのアカウントに割り当てる必要があります)、inner-me はその外部キーを作成したいと考えています。
しかし、私はオブジェクト/データリソースを抽象化し、そのコンテキストを分離するという概念が本当に好きです (たとえば、アカウントやユーザーなどに割り当てられます)。
誰かがemを持っていれば、いくつかの考えをいただければ幸いです:)
スキーマ:
リンク:
CREATE TABLE `links` (
`link_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`timestamp_updated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
`timestamp_created` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`status` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
`type` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
`title` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
`description` longtext COLLATE utf8_unicode_ci NOT NULL,
`resource` longtext COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`link_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Links';
ルックアップ:
CREATE TABLE `lookups` (
`lookup_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`timestamp_updated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
`timestamp_created` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`status` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
`type` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
`source_node_type` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
`source_node_id` int(10) unsigned NOT NULL,
`target_node_type` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
`target_node_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`lookup_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Obejct Assignments';