09/10/2018, 23:23

Đồng bộ CSDL của web music với forrum VBB

Em cũng chỉ biết đến cái máy tính 1 năm và internet nửa năm nên biết rất ít. Em kiếm được 1 sorce music .Giờ em muốn đồng bộ nó với VBB.Tức là thành viên của VBB cũng sẽ là thành viên của web music đó.Khi register ở mỗi nơi thì thành viên sẽ là duy nhất.Em biết là sẽ rất khó để có ai đó ra tay giúp đỡ chuyện này cho em vì nó hơi "lằng nhằng" nhưng em vẫn hy vọng sẽ có một Mạnh Thường Quân .Đây là SQL của nó:
CREATE TABLE `media_ads` (
`ads_id` int(2) NOT NULL auto_increment,
`ads_web` varchar(255) NOT NULL default ',
`ads_url` varchar(255) NOT NULL default ',
`ads_img` varchar(255) NOT NULL default ',
`ads_count` int(5) NOT NULL default '0',
PRIMARY KEY (`ads_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;

CREATE TABLE `media_album` (
`album_id` int(10) NOT NULL auto_increment,
`album_name` varchar(255) NOT NULL default ',
`album_name_ascii` varchar(255) NOT NULL default ',
`album_singer` varchar(50) NOT NULL default ',
`album_img` varchar(255) NOT NULL default ',
`album_info` text NOT NULL default ',
`album_viewed` int(10) NOT NULL default '0',
PRIMARY KEY (`album_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;

CREATE TABLE `media_cat` (
`cat_id` int(3) NOT NULL auto_increment,
`m_title_ascii` varchar(120) NOT NULL default ',
`cat_name` varchar(120) NOT NULL default ',
`cat_type` char(3) NOT NULL default ',
`cat_order` int(3) NOT NULL default '0',
`sub_id` int(3) default NULL,
PRIMARY KEY (`cat_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;

CREATE TABLE `media_config` (
`config_name` varchar(50) NOT NULL default ',
`config_value` text NOT NULL default ',
PRIMARY KEY (`config_name`)
) ENGINE=MyISAM;

INSERT INTO `media_config` (`config_name`, `config_value`) VALUES ('default_tpl','funnycolors'),
('total_visit','1'),
('announcement','Music'),
('server_address','),
('web_title','Music'),
('web_url','http://localhost/'),
('server_folder','DzxgpOqiWrnf'),
('server_url','http://localhost/'),
('current_month','1'),
('web_email','***x@yahoo.com'),
('download_salt','16-06-89');

CREATE TABLE `media_counter` (
`ip` varchar(15) NOT NULL default ',
`sid` varchar(32) NOT NULL default ',
`time` varchar(12) NOT NULL default '0'
) ENGINE=MyISAM;

CREATE TABLE `media_data` (
`m_id` int(10) NOT NULL auto_increment,
`m_title` varchar(120) NOT NULL default ',
`m_title_ascii` varchar(120) NOT NULL default ',
`m_singer` int(5) NOT NULL default '0',
`m_album` int(5) NOT NULL default '0',
`m_cat` varchar(120) NOT NULL default ',
`m_url` varchar(250) NOT NULL default ',
`m_poster` varchar(5) NOT NULL default ',
`m_is_local` tinyint(1) NOT NULL default '0',
`m_lyric` text default NULL,
`m_type` int(1) NOT NULL default '0',
`m_width` int(3) default NULL,
`m_height` int(3) default NULL,
`m_viewed` int(10) NOT NULL default '0',
`m_viewed_month` int(10) NOT NULL default '0',
`m_downloaded` int(5) NOT NULL default '0',
`m_downloaded_month` int(10) NOT NULL default '0',
`m_date` date NOT NULL default '0000-00-00',
`m_is_broken` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`m_id`),
KEY `m_title` (`m_title`)
) ENGINE=MyISAM AUTO_INCREMENT=1;


CREATE TABLE `media_gift` (
`gift_id` varchar(20) NOT NULL default ',
`gift_media_id` int(5) NOT NULL default '0',
`gift_sender_id` int(5) NOT NULL default '0',
`gift_sender_name` varchar(100) NOT NULL default ',
`gift_sender_email` varchar(100) NOT NULL default ',
`gift_recip_name` varchar(100) NOT NULL default ',
`gift_recip_email` varchar(100) NOT NULL default ',
`gift_message` text NOT NULL default ',
`gift_time` varchar(12) NOT NULL default ',
PRIMARY KEY (`gift_id`)
) ENGINE=MyISAM;

CREATE TABLE `media_online` (
`timestamp` varchar(15) NOT NULL default '0',
`ip` varchar(15) NOT NULL default ',
`sid` varchar(32) NOT NULL default ',
KEY `timestamp` (`timestamp`),
KEY `ip` (`ip`)
) ENGINE=MyISAM;

CREATE TABLE `media_playlist` (
`playlist_id` varchar(20) NOT NULL default ',
`playlist_contents` varchar(255) NOT NULL default '
) ENGINE=MyISAM;

CREATE TABLE `media_singer` (
`singer_id` int(10) NOT NULL auto_increment,
`singer_name` varchar(255) NOT NULL default ',
`singer_name_ascii` varchar(255) NOT NULL default ',
`singer_img` varchar(255) NOT NULL default ',
`singer_info` text NOT NULL default ',
`singer_type` char(1) NOT NULL default ',
PRIMARY KEY (`singer_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;

CREATE TABLE `media_tpl` (
`tpl_id` int(3) NOT NULL auto_increment,
`tpl_sname` varchar(20) NOT NULL default ',
`tpl_fname` varchar(255) NOT NULL default ',
`tpl_order` int(3) NOT NULL default '0',
PRIMARY KEY (`tpl_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;

-- --------------------------------------------------------
-- TABLE media_tpl's DATA
-- --------------------------------------------------------

INSERT INTO `media_tpl` (`tpl_id`, `tpl_sname`, `tpl_fname`, `tpl_order`) VALUES ('1','funnycolors','FunnyColors','1');


CREATE TABLE `media_user` (
`user_id` int(5) NOT NULL auto_increment,
`user_name` varchar(50) NOT NULL default ',
`user_password` varchar(50) NOT NULL default ',
`user_new_password` varchar(15) NOT NULL default ',
`user_email` varchar(100) default NULL,
`user_***` char(1) NOT NULL default '0',
`user_regdate` varchar(12) NOT NULL default ',
`user_level` tinyint(1) default NULL,
`user_playlist_id` varchar(20) NOT NULL default ',
`user_online` tinyint(1) NOT NULL default '0',
`user_ip` varchar(15) NOT NULL default ',
`user_identifier` varchar(32) default NULL,
`user_timeout` varchar(12) default NULL,
`user_lastvisit` varchar(12) NOT NULL default ',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;

-- --------------------------------------------------------
-- TABLE media_user's DATA
-- --------------------------------------------------------

INSERT INTO `media_user` (`user_id`, `user_name`, `user_password`, `user_new_password`, `user_email`, `user_***`, `user_regdate`, `user_level`, `user_playlist_id`, `user_online`, `user_ip`, `user_identifier`, `user_timeout`, `user_lastvisit`) VALUES ('1','ohnothing','21232f297a57a5a743894a0e4a801fc3 ','fWQU59WMsWZVuok','redphoenix289@yahoo.com','2', '2006-12-20','3','nI8RG0eJt3pilGZ8HFjy','0',',',','11683 84061');



Mong các anh giúp đỡ.
Dctran viết 01:35 ngày 10/10/2018
Vấn đề này không đơn giản đâu bạn, có 2 giải pháp sau:

- Giải pháp 1: đưa media_user đồng bộ với vbb_user (tôi vd thế) thành 1 table duy nhất. Cái này đương nhiên là hết sức phức tạp, sửa code rất nhiều.

- Giải pháp 2: khi cập nhật thông tin thì xử lý đồng thời luôn 2 bảng media_user và vbb_user. Tôi lấy ví dụ khi 1 ông A đăng ký làm thành viên của forum VBB thì khi họ đăng ký xong cho forum thì phải viết script cập nhật luôn vào bảng media_user. Việc này có thể làm được, bạn mở code có dòng insert vào vbb_user thêm dòng insert vào media_user. Tương tự phải xử lý cho tình huống update và delete.

Nhìn chung để giải quyết được vấn đề này bạn cần phải có kiến thức tốt về SQL và hiểu 1 phần code của VBB.
ohnothing viết 01:33 ngày 10/10/2018
Cảm ơn bạn.Có lẽ mình sẽ phải forget nó đi vì bất khả thi đối với mình quá.Chỉ ngại 1 diều là cùng 1 trang mà phải đăng kí 2 lần.Híc
mrsinguyenus viết 01:35 ngày 10/10/2018
sao không đồng bộ lúc đầu, lấy user của vbb ra mà dùng, không cần tbl của music
thienthan36 viết 01:28 ngày 10/10/2018
Cái này chắc là phải viết một plugins cho vbb thôi, chứ đồng bộ giữa vbb và code music này không phải chuyện dễ, phải chỉnh sửa code rất nhiều, có khi vbb chạy không được cũng nên.
Bất khả thi -->
hoangpt viết 01:29 ngày 10/10/2018
Đúng như ban dctran nói, giải pháp thứ 2 có vẻ tốt hơn giải pháp 1. Tuy nhiên giải pháp nào cũng sẽ có những ưu nhược điểm của nó.

-Giải pháp 1: ưu điểm sẽ là CSDL gọn gàng và không bị dư thừa. Tuy nhiên bạn phải thiết kế lại một số trang như register,...

- Giải pháp 2: dễ hơn vì bạn chỉ cần đồng bộ vài trường quan trọng như userid, username, password và email. Rõ ràng là trường bên Music portal đơn giản hơn forum portal nên bạn nên dùng trang register của music làm gốc, rồi chuyển sang vbb là được. Sau đó thì 2 cái hoạt động riêng biệt.
red_hacker viết 01:40 ngày 10/10/2018
Theo như mình thì viết theo cách 1 là hay hơn.
Bạn hiểu rõ cách tạo user của vbb rồi bạn code lại cái phần đăng ký của music sao cho giống là đc.

Mình kô nhầm thì code bạn đang xài là Chilinh thì phải (code gốc)

Còn mình thì mình xài code media center và đã tích hợp thành công.

Http://fu-team.fr/
takura viết 01:24 ngày 10/10/2018
hi bạn.
ý tưởng tích hợp với VBB có lẽ là không khó.Cái chính là bạn có chịu nghiên cứu về cấu trúc VBB.Hiện vbb.org có share 1 số script login từ 1 trang ngoài diễn đàn.Cái đó khá hay và hữu hiệu.Việc còn lại là bạn code thêm trên trang đó dựa vào hệ thống của mình.
Nếu bạn cần xem demo thì PM cho mình,mình sẽ send url để bạn check.
Bài liên quan
0