English 中文(简体)
Using a single wiki table for multiple subject tables
原标题:

I wonder to know if someone can help to understand if I m doing well using a single table with wiki content for multiple subjects, so:

TABLE wiki
 ==>  wiki_id
      wiki_content
      wiki_language
      wiki_user_id

TABLE houses
      house_id
      house_name
      house_year
      house_location
 ==>  wiki_id

TABLE architects
      arch_id
      arch_name
      arch_born
      arch_died
 ==>  wiki_id

I think it could be a right way if i use:

SELECT * FROM houses WHERE house_id =  123  INNER JOIN wiki ON houses.wiki_id = wiki.wiki_id

but I don t have experience on databases.

The wiki structure, is substantially identical in the both cases, so, am I wrong using one wiki table for two different tables? Could I encounter problems in the future on this db design solution?

最佳回答

If the wiki information is related directly to houses and architects then I see no problem linking them with foreign keys. It is just a one to many relationship for multiple entities. As long as those are related then it is fine to link them.

This might only be a data integrity issue if the set of wikis that are related to houses is completely separate from the wikis that are related to architects since your foreign key constraint will not ensure that is always true.

问题回答

If you handle houses and architects within the same wiki, I d think that would be how you d want to do it.

The way you have it, you can see which houses (and which architects) are associated with a given wiki. Separating things into two wiki tables would indicate that they re not really part of the same wiki, which might indicate that your wiki is too "tightly coupled" to your houses and your architects.

SELECT *
FROM wiki AS w
    JOIN houses AS h ON w.wiki_id = h.wiki_id
    JOIN architects AS a ON  w.wiki_id = a.wiki_id
WHERE house_name =  big tall house 
    AND house_location =  two blocks that way 
;




相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...

热门标签