Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Merhaba bir saas proje geliştirmek istiyorum ve bu işlemin veritabanı yapısını merak ediyorum fakat araştırma yaptığımda genelde veritabanını multi-tenancy olarak kullanılmasını söylüyor ama benim merak ettiğim tablo yapısı nasıl olmalıdır. mesela 3 paketim var her birinde ayrı özellikler var kullanıcı geldi abone oldu flan bunları nasıl tutmam gerekiyor. yada mesela 14 gün deneme süresi başlatacağım bunları nasıl tutmam gereklidir. yol gösterebilecek birisi var mıdır acaba?

  • mgsmus bunu yanıtladı.
  • omeruzer Mesela şöyle olabilir; çok basit düzeyde modeller:

    Plan

    +----+-------+
    | id | name  |
    +----+-------+
    |  1 | Basic |
    |  2 | Pro   |
    +----+-------+

    Feature

    +----+--------------+------------+-------+
    | id |     name     |    unit    | price |
    +----+--------------+------------+-------+
    |  1 | SMS          | per_usage  |   0.5 |
    |  2 | Mail         | per_usage  |   0.1 |
    |  3 | Video Render | per_minute |  1.25 |
    +----+--------------+------------+-------+

    Subscription

    +----+---------+---------+---------------------+---------------------+----------+------------+
    | id | plan_id | user_id |      starts_at      |       ends_at       | is_trial | recurrence |
    +----+---------+---------+---------------------+---------------------+----------+------------+
    |  1 |       1 |       3 | 2022-09-21 11:44:42 | 2022-10-21 11:44:42 | false    | monthly    |
    +----+---------+---------+---------------------+---------------------+----------+------------+

    SubscriptionFeature

    +-----------------+------------+------------+-------+
    | subscription_id | feature_id |   usage    | price |
    +-----------------+------------+------------+-------+
    |               1 |          1 | per_usage  |   0.5 |
    |               1 |          2 | per_usage  |   0.2 |
    |               1 |          3 | per_minute |  2.15 |
    +-----------------+------------+------------+-------+

    PlanFeature

    +---------+------------+
    | plan_id | feature_id |
    +---------+------------+
    |       1 |          1 |
    |       1 |          2 |
    |       1 |          3 |
    +---------+------------+

    FeatureUsage

    +-----------------+------------+---------+-------+
    | subscription_id | feature_id | user_id | usage |
    +-----------------+------------+---------+-------+
    |               1 |          1 |       1 |     1 |
    |               1 |          3 |       1 |    15 | // Basic planda 15 dk video render etmiş
    +-----------------+------------+---------+-------+

    omeruzer Tenancy dediğiniz başka bir şey paketim var dediğiniz (subscription) başka bir şey. İkisini ayrı araştırın.

      mgsmus yani ben saas bir projenin veritabanı yapısını öğrenmek istiyorumda mesela 3 ayrı paketim var bu paketlerin özelliklierini nasıl tutucam kullanıcıları nasıl tutucam subscription sistemini nasıl tutucam ödemeyi neye göre alıcam gibi

        omeruzer Mesela şöyle olabilir; çok basit düzeyde modeller:

        Plan

        +----+-------+
        | id | name  |
        +----+-------+
        |  1 | Basic |
        |  2 | Pro   |
        +----+-------+

        Feature

        +----+--------------+------------+-------+
        | id |     name     |    unit    | price |
        +----+--------------+------------+-------+
        |  1 | SMS          | per_usage  |   0.5 |
        |  2 | Mail         | per_usage  |   0.1 |
        |  3 | Video Render | per_minute |  1.25 |
        +----+--------------+------------+-------+

        Subscription

        +----+---------+---------+---------------------+---------------------+----------+------------+
        | id | plan_id | user_id |      starts_at      |       ends_at       | is_trial | recurrence |
        +----+---------+---------+---------------------+---------------------+----------+------------+
        |  1 |       1 |       3 | 2022-09-21 11:44:42 | 2022-10-21 11:44:42 | false    | monthly    |
        +----+---------+---------+---------------------+---------------------+----------+------------+

        SubscriptionFeature

        +-----------------+------------+------------+-------+
        | subscription_id | feature_id |   usage    | price |
        +-----------------+------------+------------+-------+
        |               1 |          1 | per_usage  |   0.5 |
        |               1 |          2 | per_usage  |   0.2 |
        |               1 |          3 | per_minute |  2.15 |
        +-----------------+------------+------------+-------+

        PlanFeature

        +---------+------------+
        | plan_id | feature_id |
        +---------+------------+
        |       1 |          1 |
        |       1 |          2 |
        |       1 |          3 |
        +---------+------------+

        FeatureUsage

        +-----------------+------------+---------+-------+
        | subscription_id | feature_id | user_id | usage |
        +-----------------+------------+---------+-------+
        |               1 |          1 |       1 |     1 |
        |               1 |          3 |       1 |    15 | // Basic planda 15 dk video render etmiş
        +-----------------+------------+---------+-------+

          mgsmus Gerçekten çok teşekkür ederim şimdi daha iyi oturdu aslında yapı