>knyttet en MySQL database
det er din database, men for at kunne tilgå den via PHP skal du igennem et API, det oprindelige hed mysql, og er forældet, og ved at udgå af PHP, der er lavet en forbedret vertion der hedder mysqlI, som rigtig mange anvender, og der er kommet en yderligere forbedret vertion der hedder PDO, som jeg selv anvender, da det er fremtiden som jeg ser det.
http://php.net/manual/en/mysqlinfo.api.choosing.php>1) Man skal være logget ind for at kunne oprette en annonce
så sætter du en session variabel med brugerens id, navn, email, og evt hvad han ejer, det anvendes i din formular
>2) Samme bruger kan have flere annoncer
>3) Samme annonce kan KUN have 1 bruger
altså en en til mange relation
>Jeg tror det er svært at forstå, at de kan oprette en annonce uden at oplyse dato, navn og email
navn og email henter du fra session, og kan sagtens skrive det i formularen for brugeren, felterne skal så bare være read only, og behøver ikke name attributten.
dato har php indbygget, og mysql har også noget indbygget
http://php.net/manual/en/function.date.phphttps://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.htmlaltså kunne din database se ca sådan ud, her er det kategori opdelt, og nemt at udvide med feks lejlighed, en lidt besværlig codning, men meget flexibel, og den jeg vil vælge
--
-- Database: `test`
--
-- --------------------------------------------------------
--
-- Struktur-dump for tabellen `tbl_annonce`
--
CREATE TABLE IF NOT EXISTS `tbl_annonce` (
`id` int(11) NOT NULL,
`Dato` date DEFAULT NULL,
`Overskrift` varchar(255) COLLATE utf8_danish_ci DEFAULT NULL,
`Annoncetekst` longtext COLLATE utf8_danish_ci,
`user_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- --------------------------------------------------------
--
-- Struktur-dump for tabellen `tbl_ejer`
--
CREATE TABLE IF NOT EXISTS `tbl_ejer` (
`id` int(11) NOT NULL,
`name` varchar(255) COLLATE utf8_danish_ci NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
--
-- Data dump for tabellen `tbl_ejer`
--
INSERT INTO `tbl_ejer` (`id`, `name`) VALUES
(1, 'hus'),
(2, 'garage');
-- --------------------------------------------------------
--
-- Struktur-dump for tabellen `tbl_map_user_ejer`
--
CREATE TABLE IF NOT EXISTS `tbl_map_user_ejer` (
`id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`ejer_id` int(11) NOT NULL,
`nr` varchar(5) COLLATE utf8_danish_ci NOT NULL COMMENT 'hus / garage nr eks 28A'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- --------------------------------------------------------
--
-- Struktur-dump for tabellen `tbl_user`
--
CREATE TABLE IF NOT EXISTS `tbl_user` (
`id` int(11) NOT NULL,
`name` varchar(255) COLLATE utf8_danish_ci NOT NULL,
`email` varchar(255) COLLATE utf8_danish_ci DEFAULT NULL,
`password` varchar(255) COLLATE utf8_danish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
--
-- Begrænsninger for dumpede tabeller
--
--
-- Indeks for tabel `tbl_annonce`
--
ALTER TABLE `tbl_annonce`
ADD PRIMARY KEY (`id`), ADD KEY `fk_tbl_annonce_tbl_user_idx` (`user_id`);
--
-- Indeks for tabel `tbl_ejer`
--
ALTER TABLE `tbl_ejer`
ADD PRIMARY KEY (`id`);
--
-- Indeks for tabel `tbl_map_user_ejer`
--
ALTER TABLE `tbl_map_user_ejer`
ADD PRIMARY KEY (`id`);
--
-- Indeks for tabel `tbl_user`
--
ALTER TABLE `tbl_user`
ADD PRIMARY KEY (`id`);
--
-- Brug ikke AUTO_INCREMENT for slettede tabeller
--
--
-- Tilføj AUTO_INCREMENT i tabel `tbl_annonce`
--
ALTER TABLE `tbl_annonce`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- Tilføj AUTO_INCREMENT i tabel `tbl_ejer`
--
ALTER TABLE `tbl_ejer`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;
--
-- Tilføj AUTO_INCREMENT i tabel `tbl_map_user_ejer`
--
ALTER TABLE `tbl_map_user_ejer`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- Tilføj AUTO_INCREMENT i tabel `tbl_user`
--
ALTER TABLE `tbl_user`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- Begrænsninger for dumpede tabeller
--
--
-- Begrænsninger for tabel `tbl_annonce`
--
ALTER TABLE `tbl_annonce`
ADD CONSTRAINT `fk_tbl_annonce_tbl_user` FOREIGN KEY (`user_id`) REFERENCES `tbl_user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
en lidt nemmere db design vil måske være dette, hvor man har en liste med alle huse, og en liste med alle garager, men skal man nu udvide med feks lejlighed, skal man ud over lav e en ny tabel og code noget
--
-- Database: `test`
--
-- --------------------------------------------------------
--
-- Struktur-dump for tabellen `tbl_annonce`
--
CREATE TABLE IF NOT EXISTS `tbl_annonce` (
`id` int(11) NOT NULL,
`Dato` date DEFAULT NULL,
`Overskrift` varchar(255) COLLATE utf8_danish_ci DEFAULT NULL,
`Annoncetekst` longtext COLLATE utf8_danish_ci,
`user_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- --------------------------------------------------------
--
-- Struktur-dump for tabellen `tbl_garager`
--
CREATE TABLE IF NOT EXISTS `tbl_garager` (
`id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`nr` varchar(5) CHARACTER SET latin1 NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- --------------------------------------------------------
--
-- Struktur-dump for tabellen `tbl_huse`
--
CREATE TABLE IF NOT EXISTS `tbl_huse` (
`id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`nr` varchar(5) COLLATE utf8_danish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
-- --------------------------------------------------------
--
-- Struktur-dump for tabellen `tbl_user`
--
CREATE TABLE IF NOT EXISTS `tbl_user` (
`id` int(11) NOT NULL,
`name` varchar(255) COLLATE utf8_danish_ci NOT NULL,
`email` varchar(255) COLLATE utf8_danish_ci DEFAULT NULL,
`password` varchar(255) COLLATE utf8_danish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
--
-- Begrænsninger for dumpede tabeller
--
--
-- Indeks for tabel `tbl_annonce`
--
ALTER TABLE `tbl_annonce`
ADD PRIMARY KEY (`id`), ADD KEY `fk_tbl_annonce_tbl_user_idx` (`user_id`);
--
-- Indeks for tabel `tbl_garager`
--
ALTER TABLE `tbl_garager`
ADD PRIMARY KEY (`id`);
--
-- Indeks for tabel `tbl_huse`
--
ALTER TABLE `tbl_huse`
ADD PRIMARY KEY (`id`);
--
-- Indeks for tabel `tbl_user`
--
ALTER TABLE `tbl_user`
ADD PRIMARY KEY (`id`);
--
-- Brug ikke AUTO_INCREMENT for slettede tabeller
--
--
-- Tilføj AUTO_INCREMENT i tabel `tbl_annonce`
--
ALTER TABLE `tbl_annonce`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- Tilføj AUTO_INCREMENT i tabel `tbl_garager`
--
ALTER TABLE `tbl_garager`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- Tilføj AUTO_INCREMENT i tabel `tbl_huse`
--
ALTER TABLE `tbl_huse`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- Tilføj AUTO_INCREMENT i tabel `tbl_user`
--
ALTER TABLE `tbl_user`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- Begrænsninger for dumpede tabeller
--
--
-- Begrænsninger for tabel `tbl_annonce`
--
ALTER TABLE `tbl_annonce`
ADD CONSTRAINT `fk_tbl_annonce_tbl_user` FOREIGN KEY (`user_id`) REFERENCES `tbl_user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;