يقوم هذا الاستعلام بإرجاع جميع المستخدمين (بما في ذلك عناوين بريدهم الإلكتروني) الذين يرسلون رسائل بريد إلكتروني إلى صندوق وارد مشترك، باستثناء أعضاء المجموعة.
حالة الاستخدام هي طريقة سهلة لتمكين الأشخاص في حدث فعلي من إنشاء مستخدم مرحلي لموقعي.
لقد وجدت أنه في حدث شخصي، يكافح العديد من المستخدمين المحتملين لإكمال عملية التسجيل (التي تتضمن كتابة عنوان بريدهم الإلكتروني (بشكل صحيح)، واختيار اسم المستخدم، وإنشاء كلمة المرور كحد أدنى. كما يتطلب التحقق من البريد الإلكتروني وتسجيل الدخول لاحقًا. هذا طلب كبير عند الوقوف والتحدث مع الأشخاص / الاستماع إلى متحدث / تناول الطعام / إلخ!
يمكن تقليل هذا إلى حد ما باستخدام OAuth2، ولكن لا يزال هناك بعض الأمور التي يجب القيام بها ويبدو أن الأقل خبرة تقنيًا يواجهون صعوبة في ذلك أيضًا.
حلي
-
إنشاء مجموعة شبه خاصة بعنوان بريد إلكتروني جذاب (أي join@mycommunity.url)
-
عرض رمز QR يقوم بتشفير رابط mailto: إلى هذا العنوان
-
وضع الأشخاص الطيبين الذين سيديرون الانضمام اللاحق لهؤلاء الأشخاص في المجموعة
-
إضافة الاستعلام التالي إلى مستكشف البيانات، ومنح الوصول إلى المجموعة:
-- [params]
-- string :group_name
WITH group_members AS (
SELECT gu.user_id
FROM group_users gu
JOIN groups g ON g.id = gu.group_id
WHERE g.name = :group_name
),
non_group_users AS (
SELECT u.id, u.username, ue.email, u.created_at
FROM users u
JOIN user_emails ue ON ue.user_id = u.id
WHERE NOT EXISTS (
SELECT 1
FROM group_members gm
WHERE u.id = gm.user_id
) AND ue.primary = TRUE
),
group_messages AS (
SELECT tg.topic_id
FROM topic_allowed_groups tg
JOIN groups g ON g.id = tg.group_id
WHERE g.name = :group_name
),
group_message_participants AS (
SELECT gm.topic_id, tau.user_id AS tau_user_id FROM group_messages gm
JOIN topic_allowed_users tau ON tau.topic_id = gm.topic_id
JOIN non_group_users ngu ON ngu.id = tau.user_id
)
SELECT ngu.username, ngu.email, ngu.created_at FROM group_message_participants gmp
JOIN non_group_users ngu ON ngu.id = gmp.tau_user_id
GROUP BY ngu.username, ngu.email, ngu.created_at
ORDER BY ngu.username
هناك قدر من المتابعة يجب القيام به بعد ذلك، ولكن على الأقل يمكنك التقاط عناوين بريدهم الإلكتروني بشكل موثوق بطريقة تتطلب فقط نقرتين أو ثلاث نقرات / لمسات من المستخدم!