1
我有一個人表,我希望用戶能夠創建自定義多對多信息關係。教育,住宅,就業,語言等等。這些可能需要不同數量的列。例如。MySQL數據庫與用戶創建表與自定義列號
Person_languages(person_fk,language_fk)
Person_Educations(person,institution,degree,field,start,end)
我想到了這樣的事情。 (不正確的SQL)
create Tables(
table_id PRIMARY_KEY,
table_name_fk FOREIGN_KEY(Table_name),
person_fk FOREIGN_KEY(Person),
table_description TEXT
)
表拿着所有的自定義表的名稱和說明
create Table_columns(
column_id PRIMARY_KEY,
table_fk FOREIGN_KEY(Tables),
column_name_fk FOREIGN_KEY(Columns),
rank_column INT,
)
顯示在表抱着列在每個自定義表和它們的順序。
create Table_rows(
row_id PRIMARY_KEY,
table_fk FOREIGN_KEY(Tables),
row_nr INT,
)
保存每個自定義表的行的表。
create Table_cells(
cell_id PRIMARY_KEY,
table_fk FOREIGN_KEY(Tables),
row_fk FOREIGN_KEY(Table_rows),
column_fk FOREIGN_KEY(Table_columns),
cell_content_type_fk FOREIGN_KEY(Content_types),
cell_object_id INT,
)
Table holding cell info。
如果任何自定義表格開始被大多數人使用並變得很大,那麼想法可能會將其提取到一個單獨的硬編碼多對多表格中。
這是一個愚蠢的想法?有一個更好的方法嗎?
+1這裏是一個教學故事:http://www.simple-talk.com/opinion/opinion-pieces/bad-carma/ –