2013-03-30 20 views
10

sayısız 'başlarken' öğreticiler orada Zend Framework içine ZFC kullanıcı ve ZFC-RBAC 2. github sayfalarını ZFC-kullanıcı ve ZFC-RBAC nasıl uygulanacağına ilişkin vardır (https://github.com/ZF-Commons) açık ve uygulama gerçekten oldukça kolay (öğreticilerin çoğunda belirtildiği gibi). Ayrıca, hem zfc kullanıcısı hem de zfc-rbac (/ vendor/zf-commons/zfc- [user/rbac]/data /) için gerekli olan SQL şemalarını da buldum. ZFC-kullanıcı zaten sizin (http://example.com/user) için bu kurar beriZend ZFC-RBAC veritabanı nüfuslu Çerçeve 2

veritabanına bir kullanıcı oluşturma, kolaydır. Şimdiye kadar her şey yolunda. Şimdi rolleri doldurmak istiyorum, ancak rutin tablolarının doğru bir şekilde nasıl doldurulacağı konusunda net değil. Zfc-rbac bileşeni Zend Framework için popüler bir modül olduğundan bu konuda bilgi eksikliği beni şaşırtıyor.

Ben birlikte izinleri ve rolleri birbirine bağlayan Rol Tabanlı Erişim Kontrolü anapara ve izinleri için tablo nüfusu ve masa anlaşılması nettir, benim için net değil rol masa. Bir üst rolü olan bir rolün olabileceğini anlıyorum, ancak 'parent_role_id' bir 'role_id' olması gerektiğini belirten bir yabancı anahtar kısıtlaması bulunduğundan tabloyu ana rolle nasıl doldurulacağı net değil. Bir üst rolü imkansız görünüyor ekleyerek yerde yabancı anahtar ile

CREATE TABLE `rbac_role` (
    `role_id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `parent_role_id` int(11) unsigned NOT NULL, 
    `role_name` varchar(32) NULL, 
    PRIMARY KEY (`role_id`), 
    KEY `parent_role_id` (`parent_role_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 

ALTER TABLE `rbac_role` 
    ADD CONSTRAINT `rbac_role_ibfk_1` FOREIGN KEY (`parent_role_id`) REFERENCES `rbac_role` (`role_id`); 

: Aşağıda

(bu ZFC-RBAC tarafından sağlanan SQL olduğu) rol tablo için SQL nedir?

INSERT INTO `rbac_role` (parent_role_id, role_name) VALUES (NULL, 'admin'); 

Temelde benim sorum (ve bu sorduğunuz için çok aptal hissediyorum) ama nasıl bir ebeveyn rolü için bir ekleme benziyor? Ve sunduğum insert ifadesi aslında doğruysa, bir üst rol eklemeden önce her zaman yabancı anahtarı kaldırmam gerekir mi?

+8

olarak NULL değeri sağlayacaktır. 'Parent_role_id' 'NULL' olmasına izin verilmelidir, aksi halde ASLA ilk veri satırını ekleyemezsiniz. @Sam ile Anlaştı – Sam

+0

, 'parent_role_id' Ben de öyle düşündüm Yani – Crisp

+0

null olmalıdır. Teşekkür ederim. O ZFC-rbac yabancı anahtarın İLE oluşturmak tablo deyimi sağlayacak olsa da garip, daha fazla açıklamak veya bu tür kafa karıştırıcı olduğu için dışarı bırakmalısınız ya. –

cevap

0
aşağıdaki tablo oluşturmak sizin değiştirin

: parent_role_id yerine NOT NULL NULL olduğunu

CREATE TABLE `rbac_role` (
    `role_id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `parent_role_id` int(11) unsigned NULL, 
    `role_name` varchar(32) NULL, 
    PRIMARY KEY (`role_id`), 
    KEY `parent_role_id` (`parent_role_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 

Bildirimi. Parent_role_id NULL DEĞİL ise o zaman bir ebeveyn olması gerekir ama yabancı anahtar referans aynı tabloya olduğu için bir üst satır eklemek için bir yol yoktur!

0

Bilginize: Bu sorun giderildi. ZFC-RBAC sürüm 0.2.0 ben SQL hiçbir uzman değilim, ama bu öz-referanslı-dernek yanlış gibi görünüyor parent_role_id

İlgili konular